我想改变这个..
variable myref REFCURSOR
begin
OPEN :myref FOR
select sysdate,12345 xid from dual
union all
select sysdate,67890 xid from dual;
end;
/
print myref
为xid列使用2个已定义的变量(12345和67890)。我似乎无法使用上述代码的语法。
像这样的东西
declare
myNum1 NUMBER:=12345
myNum2 NUMBER:=67890
variable myref REFCURSOR
begin
OPEN :myref FOR
select sysdate,|| myNum1 || xid from dual
union all
select sysdate,|| myNum2 || xid from dual;
end;
/
print myref
答案 0 :(得分:1)
VARIABLE声明必须在PL / SQL块之外进行,因为它是用于创建替换变量的SQL * Plus命令。数值变量可以在PL / SQL块中声明,并且像任何其他PL / SQL变量一样被引用
SQL> variable myref REFCURSOR
SQL> declare
2 myNum1 number := 12345;
3 myNum2 number := 67890;
4 begin
5 open :myref
6 for
7 select sysdate, myNum1 xid from dual
8 union all
9 select sysdate, myNum2 from dual;
10 end;
11 /
PL/SQL procedure successfully completed.
SQL> print myref;
SYSDATE XID
--------- ----------
08-FEB-11 12345
08-FEB-11 67890