在oracle中执行返回数据集的存储过程并在dbms中输出

存储过程
CREATE OR REPLACE procedure CHC_DATA.QUERYTEST
( cur_result out sys_refcursor)
IS
BEGIN
open cur_result FOR SELECT name,productID FROM M_PRODUCTZZR ORDER BY M_PRODUCT_ID;
END;
执行

这样写的话在la dtl%rowtype处报错啊

第1个回答  2012-12-29
具体错误是什么?对比sys_refcursor和cursor:

sys_refcursor 不能用open,close ,fetch 进行操作。不好学,难理解。
cursor 可以用 open,close ,fetch 操作,容易学,易懂
你的%ROWTYPE是通用cursor的定义方式,sys_refcursor是不适用的
建议用常规的游标调用方式
cursor dtl1 is
select……
la dtl1%rowtype
。。。

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,_百度...
1、新建一个存储过程(Procedure)。2、修改存储过程,这个存储过程有一个输入参数(pid)跟一个输出参数(name),即通过用户id查询用户名称并将名称返回。3、调试存储过程,找到刚刚创建的存储过程右击并点击【test】选项。4、在打开的窗口内修改id值并点击左上角的倒三角形图标开始调试。5、按【CTRL+N】...

oracle 数据库中存储过程输出情况
2、在command窗口编译,3、执行存储过程,输入变量,实际什么也不输入,4、切到DBMS输出窗口,查看输出结果,‘nothing’,也就是说并没有执行‘输出SQL语句’,

oracle存储过程中调用带返回参数的存储过程
1、return返回值类型:declare v_return_value number;v_return_value := spname();dbms_output.putline(v_return_value);2、out返回 declare v_return_value number;spname(:v_return_value);dbms_output.putline(v_return_value);

Oracle 中的dbms_output.put_line
在Oracle环境中,dbms_output.put_line实际上是PL\/SQL中的一个功能。它并不是常规的命令行工具,而是用于在存储过程中输出信息。如果你想在PL\/SQL环境中弹出提示或错误信息,可以使用fnd_message.debug('请输入一个数字'),这通常在处理错误情况时使用,会显示一个警示窗口。然而,如果你需要在开发过程...

oracle存储过程如何输出信息
编写存储过程:create or replace procedure test_pro(in_num number)as M number;begin M := in_num;if 0 < M then dbms_output.put_line('输出SQL语句1');elsif M < 3 then dbms_output.put_line('输出SQL语句2');else dbms_output.put_line('nothing');end if;end;...

如何将 存储过程 的执行结果输出到文件
如果是在oracle ebs中可以执行fnd_file.put_line(fnd_file.output,'String') 和dbms_output.put_line('String')(一次输出不能超过255个字符);如果是Form,Report可以用text_io 如果使用oracle DB可以使用dbms_output.put_line和utl_file.put_line(注意它的输出path是固定的,在安装数据库时候已经设定...

怎样使用oracle自动执行存储过程?
在Oracle数据库中,可以使用DBMS_SCHEDULER来实现每天自动执行存储过程的功能。DBMS_SCHEDULER是Oracle提供的一种任务调度工具,可以用来定时执行SQL脚本、存储过程等。下面是使用DBMS_SCHEDULER实现每天自动执行存储过程的基本步骤:创建存储过程:首先需要创建一个需要定时执行的存储过程。创建作业:使用DBMS_...

存储过程如何把一个结果集放在一张表里面并返回来
Oracle的解决方案:1.先定义一个包,示例如下:create or replace package CursorPackage as type my_cursor is ref cursor;end CursorPackage;2.在存储过程返回参数使用这个定义的参数,示例如下:create or replace procedure YOUPRO(P_UserId IN NUMBER, C_Return OUT CursorPackage.my_cursor...

Oracle执行\/调用存储过程
让我们通过一个示例进行说明。实例:执行pro_insertDetp存储过程 首先,创建一个存储过程,用于向dept表中插入一条记录,代码如下:执行此命令:EXECUTE pro_insertDept;可以在PL\/SQL程序块中调用存储过程。例如,使用以下步骤:设置服务器输出功能 开始新程序块 调用存储过程 结束程序块 ...

Oracle 中的dbms_output.put_line
oracle中,不是用这个命令,这个是PL\/sql的好吧~弹出窗口你试试这个~fnd_message.debug('请输入一个数字');PS:上述你说的命令,一般是在存储过程之中使用,用来输出错误信息 而你说的是提示信息,需要后续的操作,这是要弹出警示窗口,一般在oracle开发的form中常使用,用的是我给你的那个语句。试...

相似回答