存储过程的调用

摘要:
表示输入参数。创建存储过程时,请使用表示输入参数。3.只有输出参数的存储过程:{callprocess_name(?

一、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

免责声明:文章转载自《存储过程的调用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ios虚拟机安装(二)数字地与模拟地下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【多个客户端同时调用存储过程,防止数据重复】的解决方法

场景:多个客户端并发,同时调用同一个存储过程,如何处理,使之查询数据不会出现重复? 解决方法: 在查询的表上使用排它锁 存储过程示例: CREATE PROCEDURE id_test @deal_no varchar(10) output, @getno_date varchar(50) output AS declar...

firedac的TFDStoredProc动态创建并调用存储过程

1)中间件执行存储过程 sp.Close;sp.StoredProcName := procName;sp.Prepare; // 生成存储过程的参数列表,无任何OUTPUT的存储过程,也会自动生成一个@ReturnValue的返回值参数params := TFDParams.Create;tryUnpackFDParams(inParams, param...

MySQL4:存储过程和函数

什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理。本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用、查看、修改、删除存储过程和存储函数等。使用的数据库和表还是之前写JDBC用的数据库和表: create databaseschool; useschool; create tablest...

SQL Server Profiler工具

一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询; 在后台收集查询信息; 分析性能; 诊断像死锁之类的问题; 调试T-SQL语句; 模拟重放SQL Server活动; 也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称...

PL/SQL Developer使用技巧、快捷键

PL/SQL Developer使用技巧、快捷键1、设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->C...

sql学习笔记--存储过程

 存储过程(stored procedure)有时也称sproc,它是真正的脚本,更准确地说,它是批处理(batch),但都不是很确切,它存储与数据库而不是单独的文件中。   存储过程中有输入参数,输出参数以及返回值等。 一、创建存储过程   创建存储过程的方法和创建数据库中任何其他对象一样,除了他使用AS关键字外。存储过程的基本语法如下:   CRE...