首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sqlplus命令中替换HTML实体

在sqlplus命令中替换HTML实体
EN

Stack Overflow用户
提问于 2017-03-14 07:40:23
回答 2查看 206关注 0票数 0

因此,我有一个使用sqlplus命令运行的自动生成的sql文件,但问题是.可能有需要替换的HTML实体(在本例中是‘),这样它就不会要求用户提供任何值,下面是我所拥有的一个例子:

代码语言:javascript
运行
复制
CREATE TABLE MY_TABLE (
    TABLE_KEY CHAR(24) DEFAULT '' '' NOT NULL,
    TABLE_FIELD CHAR(40) DEFAULT '' '' NOT NULL
)

我试图使用以下命令运行它:

代码语言:javascript
运行
复制
sqlplus USER/PASSWORD @<path_to_sql_file>

有没有任何方法可以得到实际的撇号,而不需要sqlplus向我询问"apos“值?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-14 07:57:42

您可以使用CHR(38)而不是& (正如Ersin已经提出的那样),也可以运行

代码语言:javascript
运行
复制
SET DEFINE OFF

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

更新

如果您在脚本DEFAULT '&apos; &apos;'中编写&apos; &apos;,那么甲骨文将&apos; &apos;作为默认值--您还期望得到什么?Oracle数据库不是HTML浏览器。

如果您想要有两个撇号,那么编写DEFAULT ''' '''。为了在字符串中转义',只需将其加倍。

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

代码语言:javascript
运行
复制
UPDATE MY_TABLE SET TABLE_KEY = DBMS_XMLGEN.CONVERT(TABLE_KEY, 1);
票数 2
EN

Stack Overflow用户

发布于 2017-03-14 07:48:24

您可以将'&' char替换为‘{##**$$}}_chr(38)\x{e76f}’‘。

试试这个:

代码语言:javascript
运行
复制
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
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42780273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档