创建的过程带有编译错误,为什么?谢谢

soldierluo 2009-04-03 05:35:43

SQL> create or replace procedure readData(rowData out a_luo%rowtype) as
2 declare
3 cursor cs is select * from a_luo;
4 begin
5 for x in cs loop
6 rowData:=x;
7 end loop;
8 end;
9 /

警告: 创建的过程带有编译错误。

SQL> create or replace procedure soldierluo.readData(rowData out a_luo%rowtype) as
2 declare
3 cursor cs is select * from a_luo;
4 begin
5 open cs;
6 while cs%found loop
7 fetch cs into rowData;
8 end loop;
9 close cs;
10 end;
11 /

警告: 创建的过程带有编译错误。

...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
changeking 2009-04-04
  • 打赏
  • 举报
回复

create or replace procedure readData(没有传入值,rowData out a_luo%rowtype) is
写个cursor给你参考下
declare
cursor a_luo is
select bdNo,bdName,dName
from BusDriver b, Depot d
where b.dNo = d.dNo;
start_a_luo a_luo%rowtype;

begin
open a_luo;
fetch a_luo into start_a_luo;
while a_luo%found loop

dbms_output.put_line( start_a_luo.bdNo || ‘ ’ ||
start_a_luo.bdName|| ‘’ || start_a_luo.dName ||‘ depot ’ );
fetch a_luo into start_a_luo;--第二个fetch是再次注入
end loop;
close a_luo;
end;
guorui88_cool 2009-04-03
  • 打赏
  • 举报
回复
SQL> create or replace procedure soldierluo.readData(rowData out a_luo%rowtype) as
2 declare
3 cursor cs is select * from a_luo;
4 begin
5 open cs;
6 while cs%found loop
7 fetch cs into rowData;
8 end loop;
9 close cs;
10 end;
11 /

rowData是什么?

你查询的是的数据,每一条有多少列?列多项的话,能赋值给rowdata吗?
%rowtype 定义一个基于游标的记录变量
cs_record cs%rowtype
yf520gn 2009-04-03
  • 打赏
  • 举报
回复
我在1楼说的有错,不好意思,没注意看你rowData的类型
yf520gn 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vc555 的回复:]
as后不要declare了 .
[/Quote]
顶!
vc555 2009-04-03
  • 打赏
  • 举报
回复
as后不要declare了 .
soldierluo 2009-04-03
  • 打赏
  • 举报
回复
还是不行
yf520gn 2009-04-03
  • 打赏
  • 举报
回复
CS是一个游标,这个游标会有具体的属性
改成: fetch cs.rowdata into rowData;

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧