在SQLPLUS命令中替换HTML实体



所以,我有一个自动生成的SQL文件,我正在尝试使用sqlplus命令运行,但问题是...可能会有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的情况下获取实际的撇号?

非常感谢您对此的帮助!

您可以使用CHR(38)而不是&(如Ersin所建议),也可以运行

SET DEFINE OFF

在您的SQL*Plus脚本的顶部。您甚至可以定义除&以外的其他字符以用于前缀替换变量,请参见文档集Define

update

如果您在脚本DEFAULT '&apos; &apos;'中写入,则Oracle将&apos; &apos;置为默认值 - 您期望还有什么?Oracle数据库不是HTML浏览器。

如果您想拥有两个撇号,则写DEFAULT ''' '''。为了在字符串中逃脱',只需将其加倍即可。

如果您必须更新现有值,则可以使用"更新语句",如:

UPDATE MY_TABLE SET TABLE_KEY = DBMS_XMLGEN.CONVERT(TABLE_KEY, 1);

您可以用'|| Chr(38)||'

替换'&amp;'&amp;' char

尝试以下方法:

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
)

最新更新