刚接触Oracle,初学者遇到以下问题,请求帮助,谢谢了!在PL/SQL中执行以下存储过程DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END; 按执行按钮只显示“Done in 0.015 Seconds”,但是结果不显示出来,我想查看结果该如何执行啊?OraclePL/SQL
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END; 按执行按钮只显示“Done in 0.015 Seconds”,但是结果不显示出来,我想查看结果该如何执行啊?OraclePL/SQL
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
你这个只是返回了到游标里面,
要出结果,还得 打开游标,fetch数据等。。
具体怎么fetch数据啊?我fetch数据的时候,它报“结果集变量或查询的返回类型不匹配”,谢谢
用 管道+函数吧。。
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用这个我在3#已经说的很清楚了。DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');--
open PBRANCH;
loop
fetch PBRANCH into .....
exit when PBRANCH %notfound;
dbms_output.put_line('.....');
end loop;END;
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用这个我在3#已经说的很清楚了。DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');--
open PBRANCH;
loop
fetch PBRANCH into .....
exit when PBRANCH %notfound;
dbms_output.put_line('.....');
end loop;END; fetch PBRANCH into 中跟什么类型的参数?得在declare中定义是吧?
但是我定义之后(VARCHAR类型)后,报出“结果集变量或查询的返回类型不匹配”
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用这个我在3#已经说的很清楚了。DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');--
open PBRANCH;
loop
fetch PBRANCH into .....
exit when PBRANCH %notfound;
dbms_output.put_line('.....');
end loop;END; fetch PBRANCH into 中跟什么类型的参数?得在declare中定义是吧?
但是我定义之后(VARCHAR类型)后,报出“结果集变量或查询的返回类型不匹配”是的,变量都在declare中定义。INTO后面跟变量,假设你查询的表有4个字段,a varchar2(40),b number,c date,d varchar2(80)。那么你的变量定义为v_a varchar2(40),v_b number,v_c date,v_d varchar2(80),然后fetch PBRANCH into v_a,v_b,v_c,v_d。即你表里面查询出什么字段,你就定义什么变量类型,查询出几个字段,就定义几个变量。
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用这个我在3#已经说的很清楚了。DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');--
open PBRANCH;
loop
fetch PBRANCH into .....
exit when PBRANCH %notfound;
dbms_output.put_line('.....');
end loop;END; fetch PBRANCH into 中跟什么类型的参数?得在declare中定义是吧?
但是我定义之后(VARCHAR类型)后,报出“结果集变量或查询的返回类型不匹配”是的,变量都在declare中定义。INTO后面跟变量,假设你查询的表有4个字段,a varchar2(40),b number,c date,d varchar2(80)。那么你的变量定义为v_a varchar2(40),v_b number,v_c date,v_d varchar2(80),然后fetch PBRANCH into v_a,v_b,v_c,v_d。即你表里面查询出什么字段,你就定义什么变量类型,查询出几个字段,就定义几个变量。
我看到输出的内容了,谢谢!
能否再请教您个问题,就是它这种只能这样输出结果,不能像直接查询出的结果那样,有列标题一样的显示结果集吗?还有就是为什么我查询语句中的所有字段必须放在INTO后面,我只INTO一个字段的时候就报错。
要像直接查询出结果那样, 用管道函数,自己google了解即可。。select....into 的语法,你得遵循。你也可以定义 type 复合类型之类的。。
就是打开SQL Window 窗口,然后写
DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');
END;
这个去执行,不可以吗?管道+函数?我是初学者,还不知道怎么用这个我在3#已经说的很清楚了。DECLARE
TYPE BRANCH_CURSOR IS REF CURSOR;
PBRANCH BRANCH_CURSOR;
BEGIN
PKG_BRANCH.BRANCH_LOADBYKEY(PBRANCH,'DL');--
open PBRANCH;
loop
fetch PBRANCH into .....
exit when PBRANCH %notfound;
dbms_output.put_line('.....');
end loop;END; 非常感谢您的回答!
实在不好意思,刚才给您的分数给错了,下次给您吧!