Oracle 替换sqlplus命令中的HTML实体

Oracle 替换sqlplus命令中的HTML实体,oracle,shell,sqlplus,html-entities,Oracle,Shell,Sqlplus,Html Entities,所以,我有一个自动生成的sql文件,我正在尝试使用sqlplus命令运行,但问题是。。。可能需要替换HTML实体(在本例中为'),这样它就不会要求用户提供任何值,以下是我的示例: CREATE TABLE MY_TABLE ( TABLE_KEY CHAR(24) DEFAULT '' '' NOT NULL, TABLE_FIELD CHAR(40) DEFAULT '' '' NOT NULL

所以,我有一个自动生成的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用户/密码@
有没有办法在sqlplus不向我询问“apos”值的情况下获得实际的撇号


非常感谢你在这方面的帮助

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

试试这个:
您可以用'| | chr(38)| |'

试试这个:
您可以使用
CHR(38)
而不是
&
(正如Ersin所建议的那样),或者运行

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

更新

如果您在脚本中编写
DEFAULT'&apos&apos;'然后Oracle放入
&apos&载脂蛋白默认值-您还期望什么?Oracle数据库不是HTML浏览器

如果你想有两个撇号,那么写
默认值'''
。要在字符串中转义
,只需将其加倍即可

如果必须更新现有值,可以使用update语句,如下所示:

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

您可以使用
CHR(38)
而不是
&
(正如Ersin所建议的那样),或者运行

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

更新

如果您在脚本中编写
DEFAULT'&apos&apos;'然后Oracle放入
&apos&载脂蛋白默认值-您还期望什么?Oracle数据库不是HTML浏览器

如果你想有两个撇号,那么写
默认值'''
。要在字符串中转义
,只需将其加倍即可

如果必须更新现有值,可以使用update语句,如下所示:

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

问题是,默认值是这样的:
chr(38)| |'apos;'||chr(38)| |'apos;'我的意图是使用撇号字符如下:
临时解决方法是使用命令行并替换
&apos但事情是。。。我依赖于sql文件没有任何其他html实体,否则每次都需要调整它…@JulioFernandez,我不明白。你为什么不能用沃纳的解决方案?它关闭了&.Hi@miracle173的不受欢迎的特性,因此,我不想要字符串
&apos
在这里,我想要实际的撇号:
那么,有没有办法告诉sqlplus替换
&apos与实际预期值一致?@JulioFernandez但在你的问题中,你写道必须替换它,这样用户就不会被提示输入值。如果使用Werner或Ersin的解决方案,则不会提示您输入值。您提出了错误的问题还是我误解了您的问题?问题是,默认值如下:
chr(38)| | apos;'||chr(38)| |'apos;'我的意图是使用撇号字符如下:
临时解决方法是使用命令行并替换
&apos但事情是。。。我依赖于sql文件没有任何其他html实体,否则每次都需要调整它…@JulioFernandez,我不明白。你为什么不能用沃纳的解决方案?它关闭了&.Hi@miracle173的不受欢迎的特性,因此,我不想要字符串
&apos
在这里,我想要实际的撇号:
那么,有没有办法告诉sqlplus替换
&apos与实际预期值一致?@JulioFernandez但在你的问题中,你写道必须替换它,这样用户就不会被提示输入值。如果使用Werner或Ersin的解决方案,则不会提示您输入值。你提出了错误的问题还是我误解了你的问题?