1、创建表
CREATE TABLE user_info ( id VARCHAR2(4), name VARCHAR2(15), pwd VARCHAR2(15), address VARCHAR2(30) );
2、创建存储过程
CREATE OR REPLACE PROCEDURE AddNewUser(n_id USER_INFO.id%TYPE,n_name user_info.name%TYPE,n_pwd user_info.pwd%TYPE,n_address user_info.address%TYPE) IS BEGIN INSERT INTO user_info(id,name,pwd,address) VALUES(n_id,n_name,n_pwd,n_address); END AddNewUser;
3、调用存储过程
PL/SQL procedure successfully completed SQL> set serveroutput on SQL> SQL> DECLARE 2 v_id user_info.id%TYPE := 'u002'; 3 v_name user_info.name%TYPE := 'wish'; 4 v_pwd user_info.pwd%TYPE := 'history'; 5 v_add user_info.address%TYPE := 'shanghai'; 6 BEGIN 7 AddNewUser(v_id,v_name,v_pwd,v_add); 8 DBMS_OUTPUT.PUT_LINE('用户 ' || v_name || ' 已经成功插入'); 9 END; 10 / 用户 wish 已经成功插入 PL/SQL procedure successfully completed
或者
DECLARE v_id user_info.id%TYPE := 'u002'; v_name user_info.name%TYPE := 'wish'; v_pwd user_info.pwd%TYPE := 'history'; v_add user_info.address%TYPE := 'shanghai'; BEGIN AddNewUser(v_id,v_name,v_pwd,v_add); DBMS_OUTPUT.PUT_LINE('用户 ' || v_name || ' 已经成功插入'); END;
4、程序中调用存储过程
我们在程序中(或者 sql 可以出现的任何地方),使用 sql 调用我们刚写好的存储过程: --利用EXEC()直接插入 EXEC AddNewUser('u003','jian','jian','beijing'); --或 EXECUTE AddNewUser('u004','zhang','zhang','beijing'); 完毕。
细心地读者会发现:存储过程不就是对 sql 语句的封装么?有了 AddNewUser 这个存储过程,每次插入的时候我们不用写 sql 语句 insert ... 了。 很对,存储过程本质上就是对业务关系复杂的 sql 语句的封装。sql 语句以程序块的形式被封装在了数据库中了。写好了以后,无论是 java,还是 .net ,抑或其他开发语言,可以像使用 sql 语句那样随意调用。这就是数据库开发。 另外,过程与函数的差别:函数与过程有很多相似的地方,但也有一些差别,其中的一点就是,过程的参数可以有三种模式(IN、OUT、IN OUT),而函数只有一种(IN),因为使用函数的目的是传入0或多个参数,返回单一的值,想让函数返回多个值是一种不良的编程习惯,我们应该加以改正。
相关推荐
主要介绍了PostgreSQL中调用存储过程并返回数据集实例,本文给出一创建数据表、插入测试数据、创建存储过程、调用创建存储过程和运行效果完整例子,需要的朋友可以参考下
DROP PROCEDURE IF EXISTS `批量插入商户路由关联数据`$$ CREATE DEFINER=`root`@`%` PROCEDURE `批量插入商户路由关联数据`() BEGIN DECLARE v_partner_no VARCHAR(32); DECLARE v_partner_id INT(11); DECLARE ...
4.2.5 使用Stored Procedure选择数据源 128 4.3 编辑数据窗口 129 4.3.1 数据窗口的几个区域 129 4.3.2 向数据窗口中添加界面元素 129 4.3.3 设置数据字段属性 130 4.4 连接数据窗口 132 4.4.1 向窗体添加数据...
现在要通过编程向B表中插入数据,可是在程序中是不允许给Int类型赋空值的如果不赋值就默认为0。为了解决这个问题,用到了存储过程的If Else,下面是完整的存储过程。 代码示例: 代码如下:create PROCEDURE [dbo].[P...
14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...
11.2.1 由VALUES关键字引入多行数据插入 11.2.2 使用SELECT语句插入值 11.3 表中数据的复制 11.3.1 基本语法 11.3.2 应用实例 11.4 从外部数据源导入、导出数据 11.4.1 Access数据库数据的导出 ...
11.2.1 由values关键字引入多行数据插入 217 11.2.2 使用select语句插入值 217 11.3 表中数据的复制 220 11.3.1 基本语法 221 11.3.2 应用实例 221 11.4 从外部数据源导入、导出数据 222 11.4.1 access数据库...
实例的进程结构(实例=SGA + 后台进程) 20 1.DBWR (数据库写入进程) 21 2.LGWR(日志写入进程) 22 3.ARCH(归档进程)-可选进程 22 4.CKPT(检查点进程)-可选进程 22 5.SMON (系统监控进程) 22 6.PMON (进程...
Vendor的AP和Customer的AR能被对清,需要在Vendor和customer主数据设置一下, 189 如图7-[2],在vendor的control页的Account control的Customer填上Customer name 80005803. 189 如图8-[2],在payment transaction ...
5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:...
第15章 插入数据 95 15.1 数据插入 95 15.1.1 插入完整的行 95 15.1.2 插入部分行 98 15.1.3 插入检索出的数据 99 15.2 从一个表复制到另一个表 100 15.3 小结 101 第16章 更新和删除数据 102 16.1 更新...
第15章 插入数据...... 95 15.1 数据插入..... 95 15.1.1 插入完整的行..... 95 15.1.2 插入部分行..... 98 15.1.3 插入检索出 的数据..... 99 15.2 从一个表复制到 另一个表..... 100 15.3 小结..... 101 第16章 ...
2.向表中插入空值 40 3.从其它表中拷贝数据 40 二. 更新数据 41 三. 删除数据 42 1.Delete 语句 42 2.Truncate 语句 42 四. SQL*Plus命令 42 1.设置环境变量命令 42 (1)Pause 43 (2)pagesize 和 newpage 43 ...
通过ROWCOUNT查看游标指向的行:(隐式游标实例) 例: DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v_count from dept; --返回一个隐式游标 dbms_output.put_line('SQL%ROWCOUNT = '||SQL%COUNT); END; / ...
3、对复制的emp表插入一行只包含有职工号,职工名,工资与部门号四个数据 项值的记录。 4、在复制的emp表中将雇员ALLEN提升为经理,工资增至$2500, 奖(佣 )金增加40%。 5、删除复制的emp表中工资低于500的记录行。...
Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 ActiveConnection Recordset对象可以通过...
14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...
14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...
5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:...
14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...