因此,我有一个使用sqlplus命令运行的自动生成的sql文件,但问题是.可能有需要替换的HTML实体(在本例中是‘),这样它就不会要求用户提供任何值,下面是我所拥有的一个例子:
CREATE TABLE MY_TABLE (
TABLE_KEY CHAR(24) DEFAULT '' '' NOT NULL,
TABLE_FIELD CHAR(40) DEFAULT '' '' NOT NULL
)
我试图使用以下命令运行它:
sqlplus USER/PASSWORD @<path_to_sql_file>
有没有任何方法可以得到实际的撇号,而不需要sqlplus向我询问"apos“值?
非常感谢你在这方面的帮助!
发布于 2017-03-14 07:57:42
您可以使用CHR(38)
而不是&
(正如Ersin已经提出的那样),也可以运行
SET DEFINE OFF
在SQL*Plus脚本的顶部。您甚至可以为前缀替换变量定义&
以外的其他字符,请参阅文档集定义。
更新
如果您在脚本DEFAULT '' ''
中编写' '
,那么甲骨文将' '
作为默认值--您还期望得到什么?Oracle数据库不是HTML浏览器。
如果您想要有两个撇号,那么编写DEFAULT ''' '''
。为了在字符串中转义'
,只需将其加倍。
如果必须更新现有值,可以使用update语句如下:
UPDATE MY_TABLE SET TABLE_KEY = DBMS_XMLGEN.CONVERT(TABLE_KEY, 1);
发布于 2017-03-14 07:48:24
您可以将'&' char替换为‘{##**$$}}_chr(38)\x{e76f}’‘。
试试这个:
CREATE TABLE MY_TABLE (
TABLE_KEY CHAR(24) DEFAULT chr(38)||'apos; '||chr(38)||'apos;' NOT NULL,
TABLE_FIELD CHAR(40) DEFAULT chr(38)||'apos; '||chr(38)||'apos;' NOT NULL
)
https://stackoverflow.com/questions/42780273
复制相似问题