【问题标题】:How to define persistent variable in SQL*PLUS如何在 SQL*PLUS 中定义持久变量
【发布时间】:2008-09-24 16:33:01
【问题描述】:

我正在尝试在SQL*PLUSORACLE 中执行以下操作。

  • 创建变量
  • 将其作为输出变量传递给我的方法调用
  • 打印输出变量的值

我明白了

未声明的变量

错误。我正在尝试创建一个在会话中持续存在的变量,直到我关闭 SQL*PLUS 窗口。

variable subhandle number;
exec MYMETHOD - (CHANGE_SET => 'SYNC_SET', - DESCRIPTION => 'Change data for emp', 
                                           - SUBSCRIPTION_HANDLE => :subhandle);

print subhandle;

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    应该没问题 - 请仔细检查您的操作:

    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
    

    【讨论】:

      【解决方案2】:

      请您重新发布,但使用代码标记格式化代码....(即 101 010 按钮)我认为出现了一些额外的“-”字符,这意味着它更难以解释。

      如果您可以替代/也复制 SQLPlus 窗口的内容,查看 SQLPlus 报告错误也可能会有所帮助?

      但它看起来是正确的。

      【讨论】:

        【解决方案3】:

        我不确定这是否是您要查找的内容,但您是否尝试过 &&variable 语法?你可以这样做

        select &&subhandle from dual
        

        或者在脚本开头的一些类似的东西,那么subhandle 应该在会话的剩余部分绑定到该值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-29
          • 2012-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-17
          • 1970-01-01
          相关资源
          最近更新 更多