如何在SQL * PLUS中定义持久变量
时间:2020-03-06 14:40:23 来源:igfitidea点击:
我试图在ORACLE的SQL * PLUS中执行以下操作。
-创建一个变量
-将其作为输出变量传递给我的方法调用
-从输出变量中打印值
我收到错误"未声明的变量"错误。我试图创建一个在会话中持续存在的变量,直到关闭SQL * PLUS窗口为止。
variable subhandle number; exec MYMETHOD - (CHANGE_SET => 'SYNC_SET', - DESCRIPTION => 'Change data for emp', - SUBSCRIPTION_HANDLE => :subhandle); print subhandle;
解决方案
请我们重新发布,但是用代码标签格式化代码...。(即101 010按钮)我认为会出现一些额外的"-"字符,这意味着解释起来更加困难。
如果可以代替/也可以复制SQLPlus窗口的内容,则查看SQLPlus报告该错误可能也会有所帮助?
但这看起来是正确的。
应该检查一下我们对此做了什么仔细检查:
SQL> create procedure myproc (p1 out number) 2 is 3 begin 4 p1 := 42; 5 end; 6 / Procedure created. SQL> variable subhandle number SQL> exec myproc(:subhandle) PL/SQL procedure successfully completed. SQL> print subhandle SUBHANDLE ---------- 42
我不确定这是否是我们要的内容,但是我们是否尝试过&& variable
语法?你可以做
select &&subhandle from dual
或者在脚本开始处添加此类内容,则应在会话的其余部分将"子句柄"绑定到该值。