存储过程新手问题

[复制链接]
查看11 | 回复3 | 2021-1-27 06:42:18 | 显示全部楼层 |阅读模式
1.
selectservidintoaafromtableaawherea.id='111';
aa查出来是'222'
select*fromtablebbwhereb.id=aa;--执行报错,是哪里出了错
select*fromtablebbwhereb.id=‘222’;--执行成功
2.若存储过程最后返回的是个结果集,该如何实现
selecta.id,a.namefromtableawherea.id=''
id,name结果是多条记录
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:42:18 | 显示全部楼层
select*fromtablebbwhereb.id=aa;--执行报错,是哪里出了错
存储过程里面不让这样直接查询。你可以insertintoselect...
回复

使用道具 举报

千问 | 2021-1-27 06:42:18 | 显示全部楼层
那该如何调用,aa的值必须是前一个查询得出的结果值,insertintoselect怎么用,能提供个完整的语句吗
回复

使用道具 举报

千问 | 2021-1-27 06:42:18 | 显示全部楼层
.若存储过程最后返回的是个结果集,该如何实现
用游标,然后dbms_output.put_line打印出来
declare
--类型定义
cursorc_job
is
selectempno,ename,job,sal
fromemp
wherejob='MANAGER';
--定义一个游标变量v_cinfoc_emp%ROWTYPE,该类型为游标c_emp中的一行数据类型
c_rowc_job%rowtype;
begin
forc_rowinc_jobloop
dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
endloop;
end;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行