sql-如何在oracle数据库中输入特殊字符,如“&”?

这个问题已经在这里有了答案:

  • 如何在从SQL Plus运行的SQL脚本中忽略“&”号?                                     7个答案

我想在插入语句中插入特殊字符&。 我的插入是:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

如果我尝试运行此查询,则会弹出一个对话框,并要求我输入&的值。

如何在oracle db的insert语句中输入特殊字符,如&

Rachel asked 2020-02-22T06:17:34Z
13个解决方案
61 votes

如果您使用的是SQL * Plus或SQL Developer,则要运行

SQL> set define off;

在执行SQL语句之前。 这样就可以检查替换变量了。

这样的SET指令是客户端工具(SQL * Plus或SQL Developer)的指令。 它们具有会话作用域,因此每次连接时都必须发出指令(如果要更改默认值以将DEFINE设置为OFF,则可以将指令放在客户端计算机的glogin.sql中)。 您不会影响数据库中的任何其他用户或会话。

Justin Cave answered 2020-02-22T06:18:00Z
22 votes

尝试'Java_22 '||'&'||' Oracle_14'

Eternal Noob answered 2020-02-22T06:18:20Z
12 votes

贾斯汀的答案是要走的路,但作为一个仅供参考,您可以将chr()函数与要插入的字符的ascii值一起使用。 对于此示例,它将是:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14'); 
Craig answered 2020-02-22T06:18:40Z
6 votes

您只需按一个点就可以逃脱&。 尝试这个:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
Jerry answered 2020-02-22T06:19:01Z
2 votes

插入其中带有“&”的值。 使用以下代码。

Set define off;

Begin

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

End ;

然后按Oracle或Toad编辑器中的F5。

Chikku Jacob answered 2020-02-22T06:19:26Z
0 votes

我们也可以使用其他方式例如,将具有特殊字符“ Java_22&Oracle_14”的值插入db,我们可以使用以下格式。

'Java_22'||'&'||' Oracle_14'

尽管它被视为3个不同的令牌,但我们没有任何选择,因为oracle文档中提供的转义序列处理不正确。

lakhcoool answered 2020-02-22T06:19:55Z
0 votes

如果要在开头或结尾添加转义字符(例如"JAVA"),请使用:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'JAVA'||chr(34)||'');
Surya answered 2020-02-22T06:20:15Z
0 votes

对于特殊字符集,您需要检查UNICODE图表。 选择字符后,您可以使用下面的sql语句,

SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;

--

dōTTTT

Ender Akdoğan answered 2020-02-22T06:20:44Z
0 votes

您也可以像这样使用concat:D

Insert into Table Value(CONCAT('JAVA ',CONCAT('& ', 'Oracle'));
Luis Cardoza Bird answered 2020-02-22T06:21:04Z
0 votes

有3种方法:

1)只需将SET DEFINE OFF设置为OFF; 然后执行插入stmt。

2)只需将单引号内的保留字连接起来并串联即可。例如。 选择'Java_22'|| '&'|| ':'|| 双-(:)中的'Oracle_14'是可选的。

3)通过将CHR函数与串联一起使用。例如。 选择'Java_22'|| chr(38)||' 来自双的Oracle_14'

希望这个帮助!

SurajSingh444 answered 2020-02-22T06:21:42Z
0 votes

strAdd = strAdd.replace(“&”,“'||'

Gank answered 2020-02-22T06:22:02Z
-1 votes

在我的情况下,我需要插入一行文字“请拨打* 001获取帮助”。在这种情况下,特殊字符是星号。

通过使用sqlPlus直接插入,它失败,并显示错误“ SP2-0734:未知命令开始...”

我尝试成功逃脱。

为此,我在文件系统上使用以下命令创建了一个文件insert.sql

insert into testtable (testtext) value ('Please dial *001 for help');

然后从sqlPlus我执行

@insert.sql

并插入行。

Juan Pablo answered 2020-02-22T06:22:44Z
-3 votes

您可以使用反斜杠字符转义单个字符或符号

'Java_22 \&Oracle_14'

或大括号以转义字符串或符号

'{Java_22&Oracle_14}'

Maria Ioannidou answered 2020-02-22T06:23:17Z
translate from https://stackoverflow.com:/questions/4175431/how-to-enter-special-characters-like-in-oracle-database