如何在oracle数据库中输入像"&"这样的特殊字符?

Rac*_*hel 47 sql database oracle oracle-sqldeveloper

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

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
Run Code Online (Sandbox Code Playgroud)

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

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

Jus*_*ave 61

如果您在SQL*Plus或SQL Developer中,则需要运行

SQL> set define off;
Run Code Online (Sandbox Code Playgroud)

在执行SQL语句之前.转向检查替换变量.

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

  • 17秒......我*非常接近 (9认同)
  • @OMG小马 - 甜蜜,甜蜜的复仇,你一直打败我:-) (3认同)
  • @Rachel - 在生产脚本中设置DEFINE OFF非常好,是的.它会影响在同一个会话中运行的所有其他语句(当然,如果你愿意,你可以在后面的脚本中设置SET DEFINE ON).但是在生产中运行的脚本中使用替换变量通常是不常见的 - 您通常不希望生产脚本提示用户输入信息,您通常希望它成为脚本的一部分. (2认同)

Ete*_*oob 22

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


Cra*_*aig 12

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

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14'); 
Run Code Online (Sandbox Code Playgroud)


小智 6

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

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
Run Code Online (Sandbox Code Playgroud)

  • 但这会插入“.”。以及。有什么想法吗? (3认同)