Oracle中如何插入特殊字符: & 和 ' (多种解决方案)

分类: Oracle

Oracle中如何插入特殊字符:& 和 ‘ (多种解决方案)

今天在导入一批数据到Oracle时,碰到了一个问题:Toad提示要给一个自定义变量AMP赋值,一开始我很纳闷,数据是一系列的Insert语句,怎么会有自定义变量呢?后来搜索了一下关键字AMP发现,原来是因为在插入数据中有一个字段的内容如下:

http://mobile.three.com.hk/3DX?uid=0676&sid=rt_060908

Oracle把这里的URL的参数连接符&当成是一个自定义变量了,所以要求我给变量AMP赋值。怎么办呢?方法有三:

·方法一:在要插入的SQL语句前加上Set define off;与原SQL语句一起批量执行

我们在SQL*PLUS下执行 SQL> show all命令时,可以发现一个参数:define "&" (hex 26),如下图所示

......

concat "." (hex 2e)

copycommit 0

copytypecheck ON

define "&" (hex 26)

  describe DEPTH 1 LINENUM OFF INDENT OFF

echo OFF

......

这个是Oracle里面用来识别自定义变量的设置,现在我们在SQL*PLUS下将其关闭:

SQL> Set define OFF;

然后再次执行导入脚本,OK!问题搞定。

注意:如果是在TOAD中执行,建议在每一个要导入的脚本第一行加上前面那句关闭define的话,否则当你导入第二个含有特殊字符的脚本的时候,又会出错。

如果是在SQL*PLUS中执行,则只需要设置一次define OFF,后面就可以连续导入了。直到你重新设置define ON为止。

插入一条语句:

SQL> insert into AA (O,resvalue) values (‘AA‘, ‘S‘||chr(38)||‘P‘);

·方法二:在SQL语句中将‘&‘替换成chr(38),因为chr(38)是‘&’的ASCII码

SQL> Select ‘Tom‘ || chr(38) || ‘Jerry‘ from dual;

·方法三:分拆原来的字符串

SQL> Select ‘Tom‘ || ‘&‘ || ‘Jerry‘ from dual;

我们可以看到,方法一最为简便,而且效率也最高。方法二因为有一个调用函数的过程,所以性能稍差。方法三需要两次连接字符串,效率最差!

那么如果字段的内容中包含了单引号要怎么插入呢?例如:It‘s fine。方法同样有三

·方法一:使用转义字符

SQL > Select ‘test‘ || ‘‘‘‘ from dual;

注意:这里的‘‘‘‘四个单引号是什么意思呢?首先第一个和最后一个都是Oracle中的字符串连接符,这个没有异议。那么第二个‘和第三‘又表示什么意思呢?第二个‘是一个转义字符

第三个‘才是我们真正的内容

·方法二:同样是使用转义字符,只不过方式不同而已

SQL > Select ‘test ‘‘‘ from dual;

注意:这里的第二个,第三个‘就是我们上面方法一中提到的转义符和真正的内容

·方法三:在SQL中将‘替换成chr(39),因为chr(39)是‘的ASCII码

SQL > Select ‘It‘ || chr(39) || ‘fine‘ from dual;

Oracle中如何插入特殊字符: & 和 ' (多种解决方案)

时间: 2024-10-22 09:46:23

Oracle中如何插入特殊字符: & 和 ' (多种解决方案)的相关文章

Oracle中如何插入特殊字符:& 和 ' (多种解决方案)

Oracle把这里的URL的参数连接符&当成是一个自定义变量了,所以要求我给变量AMP赋值.怎么办呢?方法有三: ·方法一:在要插入的SQL语句前加上Set define off;与原SQL语句一起批量执行   我们在SQL*PLUS下执行 SQL> show all命令时,可以发现一个参数:define "&" (hex 26),如下图所示   ......   concat "." (hex 2e)   copycommit 0   cop

SQL语句oracle中如何插入Date类型的数据

转:http://chwshuang.iteye.com/blog/933926 在开发的时候,经常要写条SQL语句将信息插入表中,插入的数据如果字段是date类型,就必须将date类型转换成字符串String类型在通过sql语句插入数据库.这是我字段唯一的方法,如果有高人请另赐教! 我的解决方法是用oracle中的to_date()方法,具体看下面的例子 Oracle中插入date数据代码 insert into news(ID,MSG,SEND_TIME,TIMER) Oracle中插入da

条码打印软件中如何插入特殊字符

在使用中琅条码打印软件进行商品条码制作时,有时,通过对条形码数字部分的样式处理,可以使我们的而商品条码在打印出来之后更加美观大方,也可以提高我们条码的易读性.大多数情况下,对于商品条码,我们在制作完成后,基本上都是直接打印了,但特殊情况下,由于一些业务需求决定,我们需要在商品条码数字部分插入一些特殊字符,比如下图中数字部分的"/",这个时候应该怎么操作呢,接下来就来跟大家拆解一下具体地操作步骤: 首先,我们打开中琅条码标签打印软件,点击新建一个商品条码,双击条码图形,在调出的"

XML中如果有特殊字符,比如> < 解决方案

//只需要在代码前加这个就可以了<![CDATA[ 把代码写到这个位置 ]]>

oracle中循环插入语句

DECLARE i number:=30000;BEGIN for i in 1..100 loop insert into Maternal_Info(id,sjh,bbsr,cf) values(sys_guid(),'1357050****','2014-12-03','是'); dbms_output.put_line(i); end loop;END;

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表)

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表) 关键字:chr() chr()函数作用:"特殊"字符特殊处理 在PLSql中可查询相对应的字码与特殊符 chr()函数示例: select chr(38) from dual;  ascii()函数示例: select ascii('&') from dual;      比如"&"到底为什么在Oracle中成了特殊字符呢?经过查找,终于揭晓了答案:原来&这个字符

【Oracle】Oracle中使用转义字符

1.Oracle 特殊字符 转义 关键词:oracle    转义                                           环境:oracle9i plsql 在plsql里边执行: update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test' 这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那么理想,因为这其中有一个oracle的特殊字符,需要进行转

Sql与oracle中null值的区别

原贴链接请点击: 1 null值的介绍 NULL 是数据库中特有的数据类型,当一条记录的某个列为 NULL ,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此, NULL 并不是一个确定的值. 这是 NULL 的由来.也是 NULL 的基础,所有和 NULL 相关的操作的结果都可以从 NULL 的概念推导出来. 2 oracle中的null值介绍 在不知道具体有什么数据的时候,即未知,可以用NULL, 称它为空,ORACLE中,含有空值的表列长度为零.允许任何一种数据

oracle日期的插入操作

Oracle 中如何插入日期时间类型的数据,演示的数据表如下 create table t( mydate date); SQL> insert into t values(to_date('2015-1-30 12:20:33','YYYY-MM-DD HH24:MI:SS')); SQL> select to_char(mydate,'YYYY-MM-DD HH24:MI:SS') from t; TO_CHAR(MYDATE,'YYY ------------------- 2015-0