如何在oracle数据库中input“&”这样的特殊字符?
我想在我的插入语句中插入特殊字符。 我的插入是:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
如果我尝试运行这个查询,我得到一个popup窗口,它要求我inputOracle_14
值。
如何在oracle db的insert语句中input特殊字符?
如果你在SQL * Plus或SQL Developer中,你想运行
SQL> set define off;
在执行SQL语句之前。 检查替代variables的轮stream。
这样的SET指令是客户端工具(SQL * Plus或SQL Developer)的指令。 他们有会话范围,因此每次连接时都必须发出指令(如果要将DEFINE设置为OFF,可以将指令放在客户机的glogin.sql中)。 您不会有任何风险影响数据库中的任何其他用户或会话。
试试'Java_22 '||'&'||' Oracle_14'
'Java_22 '||'&'||' Oracle_14'
贾斯汀的答案是要走的路,但也作为一个简要的信息,你可以使用chr()函数与你想插入的字符的ascii值。 对于这个例子,它将是:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14');
插入已经有'&'的值。 使用以下代码。
Set define off; Begin INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14'); End ;
并从甲骨文或蟾蜍编辑按F5。
你可以简单地通过一个点来逃避。 尝试这个:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
我们还可以使用其他的方式,例如在特殊字符“Java_22&Oracle_14”中插入值,我们可以使用下面的格式。
'Java_22'||'&'||' Oracle_14'
虽然它认为是3种不同的标记,但我们没有任何select,因为在oracle文档中提供的转义序列的处理是不正确的。
如果要在"JAVA"
开头或结尾添加转义字符,请使用:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'JAVA'||chr(34)||'');
对于特殊字符集,您需要检查UNICODE图表。 select你的字符后,你可以使用下面的sql语句,
SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;
–
dōTTTT
你也可以像这样使用concat:D
Insert into Table Value(CONCAT('JAVA ',CONCAT('& ', 'Oracle'));
有三种方法可以这样做:
1)只需做SET DEFINE OFF; 然后执行插入stmt。
2)简单地通过在单引号内连接保留字并连接它。 例如select“Java_22”|| '&'|| ':'|| 双 – (:)的“Oracle_14”是可选的。
3)通过连接使用CHR函数。 例如select“Java_22”|| 字符(38)||” Oracle_14'从双
希望这个帮助!
strAdd = strAdd.replace( “&”, “ '||' 和 '||'”);
在我的情况下,我需要插入一行文字“请拨* 001寻求帮助”。 在这种情况下,特殊字符是星号。
通过使用sqlPlus直接插入它失败,错误“SP2-0734:未知的命令开始…”
我尝试了逃脱没有成功。
为了实现,我用文件系统创build了一个文件insert.sql
insert into testtable (testtext) value ('Please dial *001 for help');
然后从sqlPlus我执行
@insert.sql
并插入行。
您可以使用反斜杠字符来转义单个字符或符号
'Java_22 \&Oracle_14'
或大括号来逃避一串字符或符号
'{Java_22&Oracle_14}'