存储过程可以实现代码的充分共享,提高系统性能。 基础篇知识回顾 如果经常使用特定操作,哪么可以考虑基于这些操作使用过程,简化开发和维护,可以充分实现代码共享,提高系统性能。 过程的分类: (一)有过程参数 (二)没有过程参数的 1.输入参数(默认是输入参数) 2.输出参数 3.输入输出参数 基本语法规则: Create or replace procedure procedure_name(argument1 [mode1]datatype1 , argument2 [mode2] datatype2 ……) Is [as] PL/SQL Block; 注意:当定义参数时,只能指定数据类型,不能指定长度. 范例一:无参数的过程 create or replace procedure a_time is begin dbms_session.set_nls('nls_date_format','''yyyy-mm-dd'''); dbms_output.put_line(sysdate); end; / 执行过程:(调用无参数过程可以直接引用过程名) SQL> exec a_time; 2008-03-04 PL/SQL 过程已成功完成 范例二:具有输入参数的过程: SQL> create or replace procedure b_insert (iemp.id%type,n emp.name%type) 2 is 3 begin 4 insert into emp values(i,n); 5 commit; 6 end; SQL> 过程已创建。 执行这个过程: SQL> exec b_insert('14','peter_lin'); PL/SQL 过程已成功完成。 SQL> select * from emp; IDNAME -------------------- 14peter_lin 1DICK_t 可以看到,数据自动插入到了表格中。 范例三:带有输出参数的过程: SQL> create or replace procedure c_update(oldvarchar2,new emp.id%type,nam outemp.name%type) 2 is 3 begin 4 select name into nam from emp where id=old; 5 update emp set id=new where id=old; 6 commit; 7 end; SQL> 过程已创建。 执行这个过程:带有输出参数的过程,需要使用变量接收这个输出值。 SQL> declare 2 nn emp.name%type; 3 begin 4c_update(&old,&new,nn); 5 dbms_output.put_line('被修改id的员工姓名:'||nn); 6 end; 7 / 输入 old 的值: 14 输入 new 的值: 12 原值4:c_update(&old,&new,nn); 新值4: c_update(14,12,nn); 被修改id的员工姓名:peter_lin PL/SQL 过程已成功完成。 SQL> select * from emp; IDNAME -------------------- 12peter_lin 1DICK_t 已选择2行。 范例四:带有输入输出参数的过程 SQL>create or replace procedure in_out 2 (n1 in out number,n2 in out number) is 3 v1 number; 4 v2 number; 5 begin 6 v1:=trunc(n1/n2); 7 v2:=mod(n1,n2); 8 n1:=v1; 9 n2:=v2; 10 end; SQL> 过程已创建。 执行这个过程: SQL>declare 2 a1 number:=&n1; 3 a2 number:=&n2; 4 begin 5 in_out(a1,a2); 6 dbms_output.put_line('除法的商'||a1||',除法的余数:'||a2); 7 end; SQL> 输入 n1 的值: 100 原值2: a1 number:=&n1; 新值2: a1 number:=100; 输入 n2 的值: 3 原值3: a2 number:=&n2; 新值3: a2 number:=3; 除法的商33,除法的余数:1 |
基础的存储过程
精选 转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mysql基础 存储过程
_______________________ 1.空参
Mysql基础 Mysql学习 -
Sql Server 存储过程基础
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,
存储过程 sql server 基础 数据库 数据类型 -
SQL Server 存储过程 的 基础介绍
储过程的概...
数据库 java 存储过程 SQL -
【MySQL】基础篇-存储过程与存储函数
【MySQL】基础篇-存储过程与存储函数
1024程序员节 存储过程 数据类型 SQL -
存储过程基础知识
什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。
SQL Server mssql 数据库 存储过程 局部变量