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

有帮助吗?

解决方案

这可能对您有用:

set define off

否则&符需要位于字符串的末尾,

'StackOverflow &' || ' you'

编辑:保存时我点击了快乐...这是从博客

其他提示

如果您有时使用替换变量,则可能不希望关闭定义。在这些情况下,您可以将&符号与|| Chr(38) ||中的数字等效项进行转换,或者将其作为单个字符附加到|| '&' ||中。

我解决了下面的代码:

set escape on

并在<!>放置旁边放一个\;在左边'value_\&_intert'

ATT

您可以通过使用SET DEFINE <1_CHARACTER>

将执行脚本时查找的特殊字符设置为其他值

默认情况下,DEFINE功能本身已打开,并设置为 <!> amp;

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

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>

set define off <!> lt; - 这是我找到的最佳解决方案

我也试过......

set define}

我能够插入几条包含&符号'!>放大器的记录;'但是我不能在文本中使用'}'字符 所以我决定使用<!> quot; set define off <!> quot;一切正常。

根据这个不错的常见问题解答,有一对夫妇的解决方案。

如果您可以修改评论,您也可以使用反斜杠字符\来转义&符号。

我有WHEN column ='sometext <!> amp的CASE声明;更多文字'那......

我用它替换了它 当列='sometext'||时CHR(38)|| '更多文字'然后......

你也可以用 当列LIKE'sometext _ more text'THEN ...

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top