ORACLE存储过程的创建和执行的简单示例和一些注意点

此示例的主要目的主要是为了了解在PL/SQL环境下怎么创建和执行存储过程。

存储过程所涉及的DataTable:

第一步:创建游标变量 

          游标是ORACLE系统在内存中开辟的一个工作区,主要用来存储SELECT的数据的。通俗的讲就是用来存储查询数据的一个临时的变量。

    游标的创建:

1 CREATE OR REPLACE PACKAGE pkg_query AS TYPE cur_query IS REF CURSOR;
2 END pkg_query;
View Code

 第二步:存储过程的创建

 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;
View Code

 创建的时候涉及了一些PL/SQL的基本语法。

如: := 为赋值,||为拼接。

in 是输入参数,out 是输出参数。

编程规范:参数尽量使用p_变量名,变量使用v_变量名。

第三步:测试执行存储过程

          PL/SQL内置了测试存储过程的快捷方式。右键待测试的存储过程->测试

          出现如下所示的界面:

如果是字符型数据字段输入的必须是 ‘ data’,否则如果执行到SELECT 就会报错;执行完点击p_cur最右边的红色方框就可以看出输出参数的数据了。

PL/SQL本身也是有调试功能的。

原文地址:https://www.cnblogs.com/cherish836138981/p/6599937.html