我的表有一个已定义的列ID。 虽然相同的查询独立运行,但是当我尝试在游标中声明它时,它会显示无效的列。
declare
type PA_1 is record (PI number);
calc number;
row_container PA_1;
begin
for row_container in
(
select distict t1.pi , t2.id
from table1 t1, table2 t2
where t1.Pi=t2.pi
);
Loop
select calculation to calc
from table1 t1
where t1.pi=row_container.pi and t2.id=row_container.id;
end loop;
commit;
end;
否则内部查询运行正常。请帮忙
答案 0 :(得分:1)
多种语法错误:
row_container
的声明。 for row_container in ()
非常复杂(并且您的一列专栏声明甚至不会将您的查询与两列匹配)。distict
应为distinct
。Loop
关键字前删除分号。它不属于那里。select calculation to calc
应为select calculation into calc
。table1
(您再次调用t1
)中选择,但您的where子句包含t2.id
,而该查询中没有t2
。 然后:这个例程应该做什么?它在变量calc
中选择一些值,但不使用它。所以一旦它运行,它就什么都不做。