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

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 特殊字符表示,Oracle如何插入在特殊字符: amp; 和 #39; (各种解决方案)相关推荐

  1. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

  2. oracle 插入一个语句,oracle如何通过1条语句插入多个值 oracle通过1条语句插入多个值方法...

    本篇文章小编给大家分享一下oracle通过1条语句插入多个值方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用 ...

  3. oracle中如何加字母,Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字...

    本文主要向大家介绍了Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle 语句中" ...

  4. oracle 函数插入操作,Oracle函数内部运用insert插入

    Oracle函数内部使用insert插入 create or replace function GET_PRODUCT_ID_BY_NAME(productName varchar2) return ...

  5. oracle exp 无效dblink,【案例】Oracle dblink 数据库连接dblink insert插入数据时异常分析...

    天萃荷净 开发DBA反映在测试数据表插入数据,Oracle dblink两库连接插入同步数据时数据量异常 一.诡异Oracle dblink起源 今天开发拿过来一条sql,说有诡异现象,sql如下 I ...

  6. 解决mysql特殊字符或者Emoji表情插入报错问题

    解决mysql特殊字符或者Emoji表情插入报错问题 原因: MySQL的utf8编码最多3个字节,Emoji表情或者某些特殊字符是4个字节,所以数据插入不了,需要修改编码. 在MySQL 的&quo ...

  7. Oracle数据库:实现批量插入的sql语句

    目录 问题现象: 问题分析: 注意:这里一定要注意分号(;)的使用: 否则容易出现报错,如: 解决方法: 问题现象: 今天想使用Oracle数据库进行批量插入的操作,发现和想象中的不太一样,报错如下: ...

  8. oracle数据库dcl,Oracle的DML、DDL、DCL详解

    DML 全称Data Manipulation Language,即数据操作语言:insert update delete select DDL 全称Data Definition Language, ...

  9. Oracle: 三、Oracle的隐藏事务与视图的创建

    内容简介 1,Oracle的隐藏事务.2,视图(View)的创建. 技术与环境 操作系统: windows 语言类别: SQL之PL/SQL thankyou: sunshine, 谢谢你的默默付出 ...

  10. oracle union 类型转换,Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

最新文章

  1. C#中导出Excel报表的方法
  2. [转]数据可视化:基本图表
  3. Stata回归结果输出
  4. 今晚课题:2019-3-20
  5. sql中的遇到的有问题的
  6. 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居
  7. django的单例模式和url分发
  8. dell设置从ssd启动_整个活儿:无损迁移系统到SSD过程记录及提升对比
  9. Java实现求二叉树的路径和
  10. SQL语句(九)使用特殊关系运算符查询
  11. lisp类似常青藤菜单_在autocad里面,我编写了很多lisp命令,我想新增一个菜单工具栏(如:文件(F),编辑(E),视图(V)......),然...
  12. SQL server2008 安装教程
  13. 一个无限批量下载百度美女图片的demo
  14. 卸载Proteus7进展缓慢、卡顿
  15. 海豚蓝牙ASIO驱动程序使用说明
  16. Windows10专业版重装系统教程
  17. 鲲志说:向我跌宕起伏,喜忧参半的2022致敬!
  18. 报错: com.alibaba.druid.pool.DruidDataSource : abandon connection, owner thread
  19. iOS开发者账号的区别
  20. Excel 2010 VBA 入门 037 获取最后一行数据的行数

热门文章

  1. 音频(一) - 音频基础知识
  2. 中国IT成功人士特点6大成功密码全解析
  3. 学哪种编程语言比较好?
  4. Java8新特性之filter过滤器
  5. python从下载链接下载文件到本地
  6. java ndk_NDK开发学习笔记之 javah 及 ndk-build
  7. 扩展windows2003 系统分区
  8. Ubnt EdgeMax 3322 ddns更新方法
  9. 解决3000端口冲突
  10. matlab curve fitting工具箱,[matlab工具箱] 曲线拟合Curve Fitting