我的一个存储过程可以返回游标(经过测试会返回结果的),我现在想通过一个下面的方式显示这个游标信息
set serveroutput on
declare
cursor mycursor is
select product_package.get_products_ref_cursor
from dual; ----调用一个包下的函数,该函数返回一个游标
v_product_id products.product_id%type;
v_name products.name%type;
v_price products.price%type;
begin open mycursor;
loop
fetch mycursor into v_product_id,v_name,v_price;
dbms_output.put_line('产品ID:'||v_product_id||'产品名称:'||v_name||'产品价格:'||v_price);
exit when mycursor%notfound;
end loop;
end;结果这个运行后只是返回一些数值,没有显示我要求的内容,请高人指点谢谢
set serveroutput on
declare
cursor mycursor is
select product_package.get_products_ref_cursor
from dual; ----调用一个包下的函数,该函数返回一个游标
v_product_id products.product_id%type;
v_name products.name%type;
v_price products.price%type;
begin open mycursor;
loop
fetch mycursor into v_product_id,v_name,v_price;
dbms_output.put_line('产品ID:'||v_product_id||'产品名称:'||v_name||'产品价格:'||v_price);
exit when mycursor%notfound;
end loop;
end;结果这个运行后只是返回一些数值,没有显示我要求的内容,请高人指点谢谢
解决方案 »
- oracle执行计划问题
- oracle数据库中表字段类型有Long型怎么备份
- 最近遇到的几个问题,高手指点下!不胜感激!
- 关于oracle备份的问题
- 调用C语言写的EXTERNAL LIBRARY的问题?create or replace function怎么写?Oracle10G
- 有关RMAN的用法,哪里可以下载说明或相关资料?
- 原为number(9,2)的列,已经写有数据了;我调试时改成了number(38,19)了,想改回来却提示必须清空数据?
- 新手提问:我在SQL*PLUS 使用help select 提示HELP不可用
- 一个pl/sql的简单问题!
- oracle 存储过程authid current_user 不起作用
- access数据库的表导入到oracle中
- 用sql server 的 dts 导入数据到 oracle失败
1.mycursor没关闭;
2.一下两行颠倒了
dbms_output.put_line('产品ID:'||v_product_id||'产品名称:'||v_name||'产品价格:'||v_price);
exit when mycursor%notfound;
1.mycursor没关闭; --不关闭也没有关系的2.一下两行颠倒了
dbms_output.put_line('产品ID:'||v_product_id||'产品名称:'||v_name||'产品价格:'||v_price);
exit when mycursor%notfound; --这两行如果颠覆,游标的最后一行没有被显示出来
from dual; 返回什么值?
SQL>
18
36
54
72
90
而select product_package.get_products_ref_cursor from dual返回的是一个游标
输出的是什么
--定义游标
cursor c1(v_no number default 0) is--默认值为0
select * from labor.xland where state > v_no;
--定义变量为游标的行类型
v_record c1%rowtype;
begin
for v_record in c1() loop
dbms_output.put_line(v_record.title||' '||to_char(v_record.state));
end loop;
end;
测试下内容