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语句中将'&'替换成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;[size=xx-large][/size]
分享到:
相关推荐
Oracle 数据库多语言入库问题的解决方案是针对企业在国际化进程中遇到的多国语言信息存储难题,尤其是在使用Oracle数据库时,由于字符集的不兼容性导致非中文语言数据入库时出现乱码。Oracle数据库作为全球广泛使用...
本文将深入探讨这个问题,并提供一种有效的解决方案。 首先,我们需要理解为什么会出现中文乱码。Oracle数据库默认采用的是ASCII字符集,对于非英文字符(如中文),如果不进行特殊设置,可能会导致乱码的出现。在...
本章介绍了Oracle数据库的导入导出技术,包括工具的使用方法和常见问题的解决方案。掌握这些知识对于维护数据库的安全性和可用性非常重要。 通过上述内容的介绍,我们可以看到Oracle是一款功能强大且应用广泛的...
Oracle数据库的字符集决定了它能支持哪些字符,升级字符集可以扩大对特殊字符的支持范围。他们对数据库字符集升级过程进行了全面测试,确保了升级的安全性和稳定性,并在实际工作中实施,解决了汉字生僻字乱码的问题...
Oracle字符集不仅包含了常见的ASCII字符,还包含了各种国家和地区的特殊字符,使得用户可以存储、处理和检索不同语言的数据。 Oracle支持国家语言的体系结构是一个全面的解决方案,它涵盖了多种语言的本地化需求。...
2. **RAC与独立实例**:RAC是Oracle提供的集群解决方案,它允许多台服务器共享一个数据库,提供高可用性和故障切换能力。而独立实例则是一个非集群环境中的单个数据库实例。 3. **配置多实例**:配置Oracle多实例...
- 解决方案:可以通过设置一个特殊的默认值来代替空字符串。 #### 九、OLEDBCommand与存储过程参数的匹配 - 在使用**OLEDBCommand**调用Oracle存储过程时,参数匹配是基于位置而非名称。这意味着: - 检查应用...
Oracle数据库在企业级应用中因其高可靠性、高稳定性和卓越性能受到广泛应用,特别是其高可用解决方案——Real Application Clusters (RAC)。然而,在RAC环境下处理字符集问题时,与单实例模式有所不同。本文主要探讨...
Java调用Shell脚本执行DataX任务是一种常见的数据迁移或同步操作。...通过实践和调试,你可以找到最佳的处理方式,或者参考已有的解决方案,如你在描述中提到的,可以直接采用你已经验证过的经验。
- **解决方案**:针对具体的数据库管理问题提供了极具参考价值的解决方案。 综上所述,《Oracle 9i 数据库管理员指南》是一部内容丰富、实用性强的专业书籍,不仅适合Oracle数据库管理员使用,对于其他相关人员如...
在IT行业中,数据库管理系统起着至关重要的作用,而Oracle作为全球领先的数据库解决方案之一,其功能强大且灵活性高,尤其在处理复杂数据操作时表现出色。本文将深入探讨Oracle数据库系统如何实现换行,以及与之相关...
Oracle 9i 的 COMPOSE 函数为解决这一问题提供了方案。 COMPOSE 函数的主要作用是规范化 Unicode 字符串,它可以接受一个或多个 Unicode 字符,并将它们组合成一个单独的、规则化的字符。这个功能特别适用于那些由...
- **GridControl应用之物理DataGuard创建与管理**: DataGuard是Oracle提供的高可用性解决方案,GridControl可以简化其配置和管理过程。 - **GridControl11g的增强**: 介绍了在GridControl 11g版本中新增的功能。 ##...
- **Oracle EBS (Enterprise Business Suite)**:是Oracle公司提供的一套完整的业务管理解决方案,适用于企业的财务管理、供应链管理、人力资源管理和客户服务等多个领域。 - **适用人群**:适合初学者或者从Java等...
Oracle BI Suite EE 10g R3作为一种强大的商业智能解决方案,提供了丰富的功能来满足这些需求。本课程主要面向Oracle内部员工以及Oracle学院的学生,帮助他们更好地理解和使用该工具。 #### 三、知识点详解 ##### ...
Oracle收购Sun公司,不仅得到了Java技术,还包括了开源数据库MySQL,这使得Oracle能够提供更加全面的数据库解决方案。 在实际应用中,Oracle数据库管理员需要了解和掌握上述知识点,并在实际工作中不断实践和应用。...
- **备份与恢复**:这部分详细介绍了Oracle提供的备份和恢复解决方案,包括热备份、冷备份、增量备份等多种备份策略。 - **业务智能**:探讨了Oracle数据库如何支持商业智能(BI)和数据分析功能,如OLAP分析、数据...