oracle带参(传入,传出)的存储过程怎么执行

Posted

tags:

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

rt,请帮我写个例子,就传入个整数,传出一个整数就成,然后在plsql中exec这个过程,主要是不能理解这带参的格式要怎么执行,谢谢,好人一生平安

1、新建存储过程,Create or Replace  Procedure CHK_SYS_EMP 检查系统工号。

2、定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。

3、存储过程框架用Begin开始,End结束。

4、查看需要调用表的结构以及相关字段。会用到表中的 EMP_NO ENABLED。

5、存储过程按需添加SQL语句。

6、程序运行测试OK。

参考技术A 网上找到一段,希望采纳:

创建含有输入和输出参数的存储过程,该过程通过员工编号查找工资额,工资额以输出参数返回
CREATE OR REPLACE PROCEDURE getSalaryByEmpNo(eNo
IN NUMBER,salary
OUT NUMBER)
AS
BEGIN
SELECT SAL INTO
salary FROM EMP WHERE EMPNO=eNo;
EXCEPTION
WHEN NO_DATA_FOUND THEN

DBMS_OUTPUT.PUT_LINE('没有找到该编号的员工');
END;
当过程中含有输出参数时,调用时必须通过BEGIN
END块,不能通过EXEC或CALL调用。如:
DECLARE
salary NUMBER(7,2);
BEGIN
getSalaryByEmpNo(7788,salary);
DBMS_OUTPUT.PUT_LINE(salary);
END;本回答被提问者采纳

oracle 执行存储过程 无法中断 但是是循环执行 怎么办

大致就是通过游标,将一个试图的所有记录,插入到另一个表中的存储过程,分布式的(试图和表不在一个服务器上),但是在两个pc机上测试可以完成工作,存储过程一放到服务器上,就一直在执行当中,cpu和会话都没有反应,中断也中断不成.这是什么问题啊,求大哥大姐指点下
游标的的退出条件也写了,就是当游标无记录时退出,
EXCEPTION, WHEN OTHERS THEN EXIT;写了 错误的消息及错误代码都提取出来了.
一点执行就一直停不下来,也不是每次都这样.就是执行3-4次出现一次无限执行

使用游标的时候一定要控制跳出循环的条件,
每个循环结束记得fetch下一跳数据,不然就会无限循环。
你的功能是插入数据,在做INSERT这段,用BEGIN END单独做成一个BLOCK吧,
写个EXCEPTION, WHEN OTHERS THEN EXIT;
我觉得基本就这几点会出现问题吧,你再看看吧。
参考技术A 有点儿像是无法取得到锁,你试试在你的更新/插入语句中加入 nowait 关键字试试看。
根据执行的错误信息再进一步分析。
参考技术B 你可以先看看表中有数据了吗,没有数据就是你程序有问题,或者可能是你的程序没法访问你那个服务器了。。

以上是关于oracle带参(传入,传出)的存储过程怎么执行的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程,IN OUT 类型的参数怎么传参数

oracle存储过程输入参数能否为空

oracle数据库函数/存储过程/包区别

带参数的ms sql server的扩展存储过程,怎么传递参数

MySQL-存储过程动态执行sql

delphi客户端调用存储过程返回参数,请问怎么解决