create or replace procedure AA_SXJTEST is
out_gg number(8);
begin
select id into out_gg from t_gzgl_zxjr_list where id=423; --查出来的只有一条记录
DBMS_OUTPUT.put_line('out_gg变量的值=:'||out_gg);
end AA_SXJTEST;--命令窗口去执行的话,我可以看到结果,如下
SQL> set serverout on;
SQL> exec AA_SXJTEST;
表的数据量为:423--**************我想问的是***************
create or replace procedure AA_SXJTEST is
out_gg ????;
--如果用下面的查询的话,这里的参数应该定义成什么,然后我怎样才可以到命令窗口里去看到这个参数的结果
begin
select id into out_gg from t_gzgl_zxjr_list; --查出来的是一个数据集
end AA_SXJTEST;
out_gg number(8);
begin
select id into out_gg from t_gzgl_zxjr_list where id=423; --查出来的只有一条记录
DBMS_OUTPUT.put_line('out_gg变量的值=:'||out_gg);
end AA_SXJTEST;--命令窗口去执行的话,我可以看到结果,如下
SQL> set serverout on;
SQL> exec AA_SXJTEST;
表的数据量为:423--**************我想问的是***************
create or replace procedure AA_SXJTEST is
out_gg ????;
--如果用下面的查询的话,这里的参数应该定义成什么,然后我怎样才可以到命令窗口里去看到这个参数的结果
begin
select id into out_gg from t_gzgl_zxjr_list; --查出来的是一个数据集
end AA_SXJTEST;
create or replace procedure AA_SXJTEST is
out_gg number(8);
cursor v_cur is select id from t_gzgl_zxjr_list
begin
open v_cur;
fetch v_cur into out_gg;
while v_cur %found loop
DBMS_OUTPUT.put_line('out_gg变量的值=:'||out_gg);
fetch v_cur into out_gg;
end loop;
close v_cur;
end AA_SXJTEST;
首先,procedure是没有returntype的,只有out parameter这样的形式,所以在procedure里返回是不行的,你顶对是通过dbms_output把数据集打出来,
这个可以通过loop 游标实现。如果是function是有返回值的,也可以通过返回一个游标或者table,array等形式来返回数据集,
不过返回的数据集在oracle里是以游标形式的,也就是你直接是不能看到其中的数据集的,
对于PLSQL developer或者TOAD工具,可以点击这个result,查看数据集。也可以通过一些java做的sqlbrowser来查看返回的数据集的
out_gg number(8);
cursor v_cur is select id from t_gzgl_zxjr_list
begin
open v_cur;
fetch v_cur into out_gg;
while v_cur %found loop
DBMS_OUTPUT.put_line('out_gg变量的值=:'||out_gg);
fetch v_cur into out_gg;
end loop;
close v_cur;
end AA_SXJTEST;
过程是没有return type,但对out parameter可以输出我们的相关信息,包括结果集,如Procedure Procedure_Name (
parameter_ In Varchar2,
list_ Out Sys_Refcursor
)
Is
Begin
Open list_ For
Select *
From table_name;End Procedure_Name;这样同事可以在PLSQL developer点击test时可以看到相关结果集...