存储过程的调用

Posted 代码小分队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程的调用相关的知识,希望对你有一定的参考价值。

一、SQL中调用存储过程语句:call procedure_name();

注:调用时”()”是不可少的,无论是有参数还是无参数.

            

定义对数据库存储过程的调用时
1、无参数存储过程:{call procedure_name}
2、仅有输入参数的存储过程:{call procedure_name(?,?...)}。
这里?表示输入参数,创建存储过程时用in表示输入参数
3、仅有输出参数的存储过程:{call procedure_name(?,?...)}。
这里的?表示输出参数,创建存储过程时用out表示输出参数
4、既有输入参数又有输出参数的存储过程{call procedure_name(?,?...)}。
这里的?有表示输出参数的,也有表示输入参数的

二、oracle函数中调用存储过程

1、无参数存储过程的调用

复制代码
--创建无参存储过程
CREATE OR REPLACE FUNCTION stu_proc RETURN VARCHAR2 IS
--声明语句段
v_name varchar2(20);
BEGIN
--执行语句段
SELECT o.sname INTO v_name FROM student o where o.id=1;
RETURN v_name;
END;

--调用无参存储过程
DECLARE
BEGIN
DBMS_OUTPUT.put_line(\'在PL/SQL中打印的结果:\'||stu_proc);
END;
复制代码

           

2、入参存储过程的调用

复制代码
--创建入参存储过程
CREATE OR REPLACE FUNCTION stu_proc(v_id IN NUMBER) RETURN VARCHAR2 IS
--声明语句段
v_name varchar2(20);
BEGIN
--执行语句段
SELECT o.sname INTO v_name FROM student o where o.id=v_id;
RETURN v_name;
END;

--调用入参存储过程
DECLARE
BEGIN
DBMS_OUTPUT.put_line(\'在PL/SQL中打印的结果:\'||stu_proc(1));
END;
复制代码

             

3、出参存储过程的调用

复制代码
--创建出参存储过程
CREATE OR REPLACE FUNCTION stu_proc(v_name OUT VARCHAR2) RETURN VARCHAR2 IS
BEGIN
--执行语句段
SELECT o.sname INTO v_name FROM student o where o.id=2;
RETURN v_name;
END;

--调用出参存储过程
DECLARE
v_name student.sname%type;
BEGIN
DBMS_OUTPUT.put_line(\'在PL/SQL中打印的结果:\'||stu_proc(v_name));
END;
复制代码

              

4、出入参存储过程的调用

复制代码
--创建出入参存储过程
CREATE OR REPLACE FUNCTION stu_proc(v_id IN NUMBER, v_name OUT VARCHAR2) RETURN VARCHAR2 IS
BEGIN
--执行语句段
SELECT o.sname INTO v_name FROM student o where o.id=v_id;
RETURN v_name;
END;

--调用出入参存储过程
DECLARE
v_name VARCHAR2(20);
BEGIN
DBMS_OUTPUT.put_line(\'在PL/SQL中打印的结果:\'||stu_proc(1, v_name));
END;
复制代码
 
参见:http://www.cnblogs.com/linjiqin/archive/2011/04/17/2018847.html

以上是关于存储过程的调用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL触发器

为啥保守光栅化无法为某些三角形调用片段着色器?

SQL存储过程如何调用存储过程?

存储过程具体过程以及sql数据库调用和程序代码调用

java如何调用存储过程 代码如下,最好能解释下相关函数的作用,不胜感激

java 登录过程 - android片段,异步任务登录,Asp.net控制器,存储库