`
NealCai
  • 浏览: 144714 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • sql
阅读更多
今天在导入一批数据到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语句中将'&'替换成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 数据库多语言入库问题的解决方案

    Oracle 数据库多语言入库问题的解决方案是针对企业在国际化进程中遇到的多国语言信息存储难题,尤其是在使用Oracle数据库时,由于字符集的不兼容性导致非中文语言数据入库时出现乱码。Oracle数据库作为全球广泛使用...

    Oracle 12c安装中文乱码解决方案口口口口口口口口口口

    本文将深入探讨这个问题,并提供一种有效的解决方案。 首先,我们需要理解为什么会出现中文乱码。Oracle数据库默认采用的是ASCII字符集,对于非英文字符(如中文),如果不进行特殊设置,可能会导致乱码的出现。在...

    oracle字符集说明

    Oracle字符集不仅包含了常见的ASCII字符,还包含了各种国家和地区的特殊字符,使得用户可以存储、处理和检索不同语言的数据。 Oracle支持国家语言的体系结构是一个全面的解决方案,它涵盖了多种语言的本地化需求。...

    .Net框架联合Oracle字符集问题研究.pdf

    Oracle数据库的字符集决定了它能支持哪些字符,升级字符集可以扩大对特殊字符的支持范围。他们对数据库字符集升级过程进行了全面测试,确保了升级的安全性和稳定性,并在实际工作中实施,解决了汉字生僻字乱码的问题...

    Oracle经典教程1——走进Oracle

    本章介绍了Oracle数据库的导入导出技术,包括工具的使用方法和常见问题的解决方案。掌握这些知识对于维护数据库的安全性和可用性非常重要。 通过上述内容的介绍,我们可以看到Oracle是一款功能强大且应用广泛的...

    oracle多实例及字符乱码

    2. **RAC与独立实例**:RAC是Oracle提供的集群解决方案,它允许多台服务器共享一个数据库,提供高可用性和故障切换能力。而独立实例则是一个非集群环境中的单个数据库实例。 3. **配置多实例**:配置Oracle多实例...

    Oracle Tuxedo.pdf

    Oracle Tuxedo通过其丰富的多字节字符支持功能,为亚太地区的企业提供了强大的全球化解决方案。无论是在国际化还是本地化的场景下,都能够有效地处理各种语言环境下的数据。这不仅极大地提高了软件的可用性和适应性...

    ORACLE集群修改字符集问题的解决.pdf

    Oracle数据库在企业级应用中因其高可靠性、高稳定性和卓越性能受到广泛应用,特别是其高可用解决方案——Real Application Clusters (RAC)。然而,在RAC环境下处理字符集问题时,与单实例模式有所不同。本文主要探讨...

    SqlServer和Oracle的不同的一些体会

    - 解决方案:可以通过设置一个特殊的默认值来代替空字符串。 #### 九、OLEDBCommand与存储过程参数的匹配 - 在使用**OLEDBCommand**调用Oracle存储过程时,参数匹配是基于位置而非名称。这意味着: - 检查应用...

    java调用shell向DataX传参,带where条件,特殊字符

    Java调用Shell脚本执行DataX任务是一种常见的数据迁移或同步操作。...通过实践和调试,你可以找到最佳的处理方式,或者参考已有的解决方案,如你在描述中提到的,可以直接采用你已经验证过的经验。

    oracle 10g 新特性

    随着技术的发展,正则表达式(Regular Expression)已成为多种编程语言和数据库系统中的重要工具之一,它能够帮助开发者高效地处理文本数据。在数据库领域,Oracle 10g引入了对正则表达式的支持,这大大增强了SQL...

    Oracle 9i应用COMPOSE和UNISTR创建沉音

    Oracle 9i 的 COMPOSE 函数为解决这一问题提供了方案。 COMPOSE 函数的主要作用是规范化 Unicode 字符串,它可以接受一个或多个 Unicode 字符,并将它们组合成一个单独的、规则化的字符。这个功能特别适用于那些由...

    Oracle 9i BDA.pdf

    - **解决方案**:针对具体的数据库管理问题提供了极具参考价值的解决方案。 综上所述,《Oracle 9i 数据库管理员指南》是一部内容丰富、实用性强的专业书籍,不仅适合Oracle数据库管理员使用,对于其他相关人员如...

    Oracle EBS 开发笔记

    - **Oracle EBS (Enterprise Business Suite)**:是Oracle公司提供的一套完整的业务管理解决方案,适用于企业的财务管理、供应链管理、人力资源管理和客户服务等多个领域。 - **适用人群**:适合初学者或者从Java等...

    oracle实现换行

    在IT行业中,数据库管理系统起着至关重要的作用,而Oracle作为全球领先的数据库解决方案之一,其功能强大且灵活性高,尤其在处理复杂数据操作时表现出色。本文将深入探讨Oracle数据库系统如何实现换行,以及与之相关...

    Oracle数据库管理

    - **GridControl应用之物理DataGuard创建与管理**: DataGuard是Oracle提供的高可用性解决方案,GridControl可以简化其配置和管理过程。 - **GridControl11g的增强**: 介绍了在GridControl 11g版本中新增的功能。 ##...

    Oracle9i(全球化支持)指南

    ### Oracle9i数据库全球化支持指南知识点解析 ...通过这些详细的介绍和技术指导,《Oracle9i数据库全球化支持指南》为技术人员提供了一套完整的方案来解决在国际化环境中部署Oracle9i数据库时可能遇到的各种问题。

    oracl转mysql注意事项

    本文档旨在提供一个全面的指南,帮助技术人员顺利完成Oracle到MySQL的迁移工作,并特别强调了在这一过程中可能会遇到的问题及其解决方案。 #### 二、迁移前准备 **1. 使用PowerDesigner导出Oracle数据库所有表结构...

    biee 文档-3 Oracle BI Suite EE 10g R3: Build

    Oracle BI Suite EE 10g R3作为一种强大的商业智能解决方案,提供了丰富的功能来满足这些需求。本课程主要面向Oracle内部员工以及Oracle学院的学生,帮助他们更好地理解和使用该工具。 #### 三、知识点详解 ##### ...

Global site tag (gtag.js) - Google Analytics