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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值