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

时间:2010-11-14 00:06:57

标签: sql database oracle oracle-sqldeveloper

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

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

如果我尝试运行此查询,我会收到一个弹出窗口,并要求我输入Oracle_14的值。

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

13 个答案:

答案 0 :(得分:57)

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

SQL> set define off;

在执行SQL语句之前。这转变了对替换变量的检查。

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

答案 1 :(得分:21)

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

答案 2 :(得分:12)

Justin的答案是要走的路,但作为一个FYI,您可以将chr()函数与要插入的字符的ascii值一起使用。对于这个例子,它将是:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14'); 

答案 3 :(得分:3)

你可以简单地逃避&通过跟随一个点。试试这个:

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

答案 4 :(得分:2)

要插入已经获得'&'在里面。使用以下代码。

Set define off;

Begin

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

End ;

从Oracle或Toad编辑处按F5。

答案 5 :(得分:0)

我们也可以使用其他方式 例如,插入带有特殊字符'Java_22&的值Oracle_14'进入db我们可以使用以下格式..

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

虽然它认为是3种不同的令牌,但我们没有任何选择,因为oracle文档中提供的转义序列的处理是不正确的。

答案 6 :(得分:0)

如果要在"JAVA"之类的开头或结尾添加转义字符,请使用:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'JAVA'||chr(34)||'');

答案 7 :(得分:0)

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

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

-

d的ō TTTT

答案 8 :(得分:0)

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

Insert into Table Value(CONCAT('JAVA ',CONCAT('& ', 'Oracle'));

答案 9 :(得分:0)

有三种方法可以做到:

1)只需将SET DEFINE OFF;然后执行insert stmt。

2)简单地通过在单引号内连接保留字并将其连接起来。 例如。选择'Java_22'|| “和; “|| ':'||双 - (:)中的'Oracle_14'是可选的。

3)通过使用CHR功能和连接。 例如。选择'Java_22'||字符(38)||”来自双

的Oracle_14'

希望这有帮助!!!

答案 10 :(得分:0)

strAdd = strAdd.replace("&安培;""' ||'&安培;' ||'" );

答案 11 :(得分:-1)

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

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

我尝试设置逃脱但没有成功。

为了实现,我使用

在文件系统上创建了一个文件insert.sql
@media screen and (max-width:1023px) {
.home-header-slider {
 padding-top: 111px;
}
}
@media screen and (max-width:767px) {
.home-header-slider {
 padding-top: 0px;
}
}
 @media screen and (min-width:1024px) {
.home-header-slider {
 padding-top: 76px;
}
}

然后从sqlPlus我执行

<div class="home-header-slider">
<?php nivo_slider( 1 ); ?>
</div>

插入了行。

答案 12 :(得分:-3)

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

  

'Java_22 \&amp; Oracle_14'

或括号来转义一串字符或符号

  

'{Java_22&amp; Oracle_14}“