代码之家  ›  专栏  ›  技术社区  ›  JoshL

如何在从SQL Plus运行的SQL脚本中忽略符号?

  •  94
  • JoshL  · 技术社区  · 17 年前

    我有一个SQL脚本,它创建了一个带有包含符号(&)的注释的包。从SQL Plus运行脚本时,系统会提示输入以&开头的字符串的替换值;。如何禁用此功能以使SQL Plus忽略符号?

    7 回复  |  直到 17 年前
        1
  •  194
  •   Austin Salonen gmlacrosse    17 年前

    set define off
    

    'StackOverflow &' || ' you'
    

    编辑:保存时我很高兴。。。这是从一个 blog .

        2
  •  30
  •   Leigh Riffel    15 年前

    || Chr(38) || || '&' || .

        3
  •  14
  •   Cauca    13 年前

    我用下面的代码解决了这个问题:

    set escape on
    

    'value_\&_intert'

        4
  •  8
  •   tvCa    11 年前

    您可以通过使用将脚本执行时查找的特殊字符设置为另一个值 SET DEFINE <1_CHARACTER>

    默认情况下,“定义”函数本身处于启用状态,并设置为 &

    如前所述,它可以关闭,但也可以通过将其设置为不同的值来避免。要非常清楚你设定的符号。在下面的例子中,我选择了#字符,但这个选择只是一个例子。

    SQL> select '&var_ampersand #var_hash' from dual;
    Enter value for var_ampersand: a value
    
    'AVALUE#VAR_HASH'
    -----------------
    a value #var_hash
    
    SQL> set define #
    SQL> r
      1* select '&var_ampersand #var_hash' from dual
    Enter value for var_hash: another value
    
    '&VAR_AMPERSANDANOTHERVALUE'
    ----------------------------
    &var_ampersand another value
    
    SQL>
    
        5
  •  4
  •   Aleksandr M    11 年前

    设置定义偏移<-这是我找到的最好的解决办法

    集定义}

    我能够插入几个包含符号和字符“&”的记录但是我不能在文本中使用“}”字符

        6
  •  3
  •   a_horse_with_no_name    9 年前

    根据 this nice FAQ 有两种解决方案。

    您还可以使用反斜杠字符转义符号AND \ 如果您可以修改注释。

        7
  •  0
  •   AWOLKiwi    8 年前

    我把它换成了 当column='sometext'| | CHR(38)| | | more text'时,则。。。

    当像“sometext uuu more text”这样的列出现时。。。

    (u是单个字符的通配符)