Oracle变量select
Oracle中这样写不行吗,小弟刚学Oracle,我想得到这个select结果,条件用变量,请大侠们多多指点declaresnovarchar2(1000):=1234;...
Oracle中这样写不行吗,小弟刚学Oracle,我想得到这个select结果,条件用变量,请大侠们多多指点
declare
sno varchar2(1000):=1234;
begin
select * from proddta.student where ildoco=sno;
end; 展开
declare
sno varchar2(1000):=1234;
begin
select * from proddta.student where ildoco=sno;
end; 展开
2个回答
展开全部
这明显就是用过sqlserver的人写出来的代码。
oracle中,在pl/sql 代码段或者存储过程中,不能直接将结果输出。
可以用 变量 先接收结果, 再把结果 打印出来(如果是存储过程,可以用 out 变量返回)
假设ildoco唯一
declare sno varchar2(1000):=1234;
aaa proddta.student%rowtype;
begin
select * into aaa from proddta.student where ildoco=sno;
dbms_output.put_line(aaa.ildoco);
dbms_output.put_line(aaa.xxx);
end;
追问
但是我的select结果不是一条数据,是有很多条,怎么才能将这个结果显示出来
追答
循环,示例如下:
declare
sno varchar2(1000):=1234;
cursor cur_a is select * from proddta.student where ildoco=sno;
aaa proddta.student%rowtype;
begin
fetch cur_a into aaa;
loop
exit when sql%notfound;
dbms_output.put(aaa.ildoco);
dbms_output.put(' ');
dbms_output.put_line(aaa.xxx);
dbms_output.put(' ');
dbms_output.put_line(aaa.yyy);
...
dbms_output.put_line(' ');
fetch cur_a into aaa;
end loop;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询