sql-如何在oracle数据库中输入特殊字符,如“&”?
这个问题已经在这里有了答案:
如何在从SQL Plus运行的SQL脚本中忽略“&”号? 7个答案
我想在插入语句中插入特殊字符&。 我的插入是:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
如果我尝试运行此查询,则会弹出一个对话框,并要求我输入&的值。
如何在oracle db的insert语句中输入特殊字符,如&?
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