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

我有一个SQL脚本,创build一个包含&符号的注释包。 当我从SQL Plus运行脚本时,系统会提示input以&开头的string的替代值。 如何禁用此function,以便SQL Plus忽略&符号?

这可能对你有用:

set define off 

否则,&符号需要在string的末尾,

 'StackOverflow &' || ' you' 

编辑:我保存时点击快乐…这是从博客引用。

如果你有时使用替代variables,你可能不想closures定义。 在这些情况下,您可以将它与数字等效项中的&符号转换为|| Chr(38) || || Chr(38) || 或者像在|| '&' ||那样将其追加为单个字符 || '&' ||

我解决了下面的代码:

 set escape on 

并在左边放置一个'value_\&_intert'

ATT

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

默认情况下,DEFINE函数本身是打开的,它被设置为

它可以closures – 如前所述 – 但也可以通过将其设置为不同的值来避免。 非常了解你设置的标志。 在下面的例子中,我select了#字符,但是这个select只是一个例子。

 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> 

设置closures< – 这是我find的最佳解决scheme

我也试过…

设置定义}

我能够插入几个包含&符号字符'&'的logging,但是我不能在文本中使用'}'字符所以我决定使用“set define off”,一切正常。

根据这个不错的常见问题 ,有几个解决scheme。

如果您可以修改注释,则也可以使用反斜杠字符\来跳过“&”符号。