PLSQL存储过程(基础篇)
来源:互联网 发布:高级java工程师 jd 编辑:程序博客网 时间:2024/05/21 06:52
PL/SQL之存储过程(基础篇)
我不是专门的开发人员,但存储过程又是很重要的知识,为了能够很好的记忆,现把这些基础知识总结一下。存储过程可以实现代码的充分共享,提高系统性能。
基础篇 知识回顾
如果经常使用特定操作,哪么可以考虑基于这些操作使用过程,简化开发和维护,可以充分实现代码共享,提高系统性能。
过程的分类:
(一)有过程参数
(二)没有过程参数的
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 (i emp.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;
ID NAME
---------- ----------
14 peter_lin
1 DICK_t
可以看到,数据自动插入到了表格中。
范例三:带有输出参数的过程:
SQL> create or replace procedure c_update(old varchar2,new emp.id%type,nam out emp.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
4 c_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;
ID NAME
---------- ----------
12 peter_lin
1 DICK_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
- PLSQL存储过程(基础篇)
- PLSQL存储过程(基础篇)
- PLSQL存储过程(基础篇)(转载)
- 存储过程基础之PLSQL学习
- plsql(二)--存储过程
- plsql回顾(2游标、存储过程)
- mybatis调用存储过程(plsql)
- PLSQL的存储过程
- PLSQL存储过程概要
- plsql调试存储过程
- plsql 存储过程 事务
- plsql-存储过程
- PLSQL存储过程1
- PLSQL-存储过程
- PLSQL中的存储过程
- PLsql调试 存储过程
- plsql 调用存储过程
- 第九章:plsql编程基础(记录&触发器&存储过程)
- Skater .NET Obfuscator Version 3.50
- SQL Server 2005新特性
- 深入探讨有符号数和无符号数,避开可怕的陷阱![转贴]
- 真没想到……我接下来最需要的……
- 发布一个"文本/文件朗读"小软件
- PLSQL存储过程(基础篇)
- test template
- what kind of project are people doing?
- .NET 开发人员该下载的十个必备工具
- SQL Server 2005 中实现通用的异步触发器架构
- Linux下常用压缩格式的压缩与解压方法
- 留言请在这里跟帖
- New feeling, new future
- 严重失误!