ORACLE存储过程的创建和执行的简单示例和一些注意点
此示例的主要目的主要是为了了解在PL/SQL环境下怎么创建和执行存储过程。
存储过程所涉及的DataTable:
第一步:创建游标变量
游标是ORACLE系统在内存中开辟的一个工作区,主要用来存储SELECT的数据的。通俗的讲就是用来存储查询数据的一个临时的变量。
游标的创建:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 CREATE OR REPLACE PACKAGE pkg_query AS TYPE cur_query IS REF CURSOR; 2 END pkg_query;
第二步:存储过程的创建
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 create or replace procedure PRO_TestDemo(p_name in NVARCHAR2, 2 p_datacount out VARCHAR2, 3 p_cur out pkg_query.cur_query) is 4 v_sql VARCHAR2(1000) := ''; --用来存储SQL语句的变量 5 v_datacount number := 0; --用来存放受影响的条数 6 begin 7 IF p_name IS NOT NULL OR p_name <> '' THEN 8 v_sql := 'SELECT COUNT(*) FROM TEST1 a WHERE a.name=' || p_name; 9 EXECUTE IMMEDIATE v_sql 10 INTO v_datacount; 11 IF (v_datacount > 0) THEN --这边的判断是为了避免不必要的语句执行 12 v_sql := 'SELECT * FROM TEST1 a WHERE a.name=' || p_name; 13 OPEN p_cur FOR v_sql; 14 END IF; 15 END IF; 16 end PRO_TestDemo;
创建的时候涉及了一些PL/SQL的基本语法。
如: := 为赋值,||为拼接。
in 是输入参数,out 是输出参数。
编程规范:参数尽量使用p_变量名,变量使用v_变量名。
第三步:测试执行存储过程
PL/SQL内置了测试存储过程的快捷方式。右键待测试的存储过程->测试
出现如下所示的界面:
如果是字符型数据字段输入的必须是 ‘ data’,否则如果执行到SELECT 就会报错;执行完点击p_cur最右边的红色方框就可以看出输出参数的数据了。
PL/SQL本身也是有调试功能的。