• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle中插入特殊字符:&和'的解决方法汇总

Oracle中插入特殊字符:&和'的解决方法汇总

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle:连接特殊字符,oracle 特殊字符,oracle 去掉特殊字符,oracle like 特殊字符,oracle中的特殊字符等相关知识,希望本文的分享对您有所帮助

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

http://xxx.com/3DX?uid=0676&sid=rt_060908

</div>

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
......

</div>

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

SQL> Set define OFF;

</div>

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

注意:如果是在TOAD中执行,建议在每一个要导入的脚本第一行加上前面那句关闭define的话,否则当你导入第二个含有特殊字符的脚本的时候,又会出错。
如果是在SQL*PLUS中执行,则只需要设置一次define OFF,后面就可以连续导入了。直到你重新设置define ON为止。

插入一条语句:

SQL> insert into AA (O,resvalue) values ('AA', 'S'||chr(38)||'P');
</div>

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

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

</div>

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

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

</div>

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

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

方法一:使用转义字符

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

</div>

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

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

SQL > Select 'test ''' from dual;

</div>

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

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

SQL > Select 'It' || chr(39) || 'fine' from dual;
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle中插入特殊字符:&和'的解决方法汇总
  • Oracle去掉特殊字符的具体方法

相关文章

  • 2017-05-11安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
  • 2017-05-11Oracle数据库的十种重新启动步骤
  • 2017-05-11Oracle提高SQL执行效率的3种方法
  • 2017-05-11oracle查询不含括号及不含指定字符的方法
  • 2017-05-11关于SQL执行计划错误导致临时表空间不足的问题
  • 2017-05-11DB2数据库切换为oracle数据库经验教训总结(必看篇)
  • 2017-05-11oracle中decode函数的使用方法
  • 2017-05-11VMware中linux环境下oracle安装图文教程(一)
  • 2017-05-11Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法
  • 2017-05-11Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • ORACLE查询删除重复记录三种方法
    • 不安装oracle客户端,plsql developer的安装教程
    • Oracle 日期的一些简单使用
    • Oracle 数据库 练习题 T8
    • Oracle 查找与删除表中重复记录的步骤方法
    • 有关Oracle数据库的备份情况
    • oracle 11g 设置用户密码大小写敏感测试
    • oracle实现多行合并的方法
    • [Oracle] Data Guard 之 浅析Switchover与Failover
    • Oracle常用命令大全集

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有