今天在导入一批数据到Oracle时,碰到了这样一个问题:Toad提示要给一个自定义变量AMP赋值,一开始我很纳闷,数据是一系列的Insert语句,怎么会有自定义变量呢?后来搜索了一下关键字AMP发现,原来是因为在插入数据中有一个字段的内容如下:
http://xxx.com/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;
代码段 很简单-分配字符串,然后将字符串分配给单元格。 我想做的是告诉“狐狸”这个词,他很大胆。这能做到吗?有特殊的字符序列吗?例如^B,有人知道在哪里可以找到完整的列表吗?文本显然可以是任何东西。。。 谢谢并问候塞恩
问题内容: 我想在单词中插入“ at”一词,以便日期看起来像: 2010年5月26日,星期三,上午11:17 我可以使它看起来像没有 2010年5月26日,星期三,上午11:17 通过使用 如何插入“ at”一词? 问题答案: 您可以使用单引号将文字转义。 这将在2010年5月26日星期三上午11:17输出
问题内容: 我想使用SAX解析器解析xml文件中的一些数据。我的xml如下: 为了解析此数据,我扩展了DefaultHandler。 解析后的输出为: 为什么发生这种情况而不是得到: 问题答案: 我的猜测是,您将每次调用都视为交付元素的完整文本。您应该对处理程序进行编码,以便连续调用以累积文本,并且仅在事件发生时捕获它:
Notepad++不仅可以实现第 3.10 节 “Notepad++支持显示回车符,换行符,TAB键,行首,行尾等特殊字符”,还可以实现插入特殊字符。 例 3.25. Notepad++可以插入特殊字符的用途举例 接着例 3.24 “Notepad++可以查看特殊字符的用途举例”继续说: 后来为了测试WXR中到底支持哪些控制字符 是不是所有的0-0x31都不支持,还是也支持一部分的控制字符, 这就
我有一个joomla数据库,其中的mySQL连接排序规则是UTF8_General_CI。我在数据库中有一些额外的数据表(与joomla安装无关),我想用PHP脚本中的数据填充这些数据表。 后期编辑:勾选下方 当我尝试插入特殊字符(特定于语言和地区的字符)时,我在数据库中得到的是jibberish(像:®?®?™?),而不是“?”。 joomla数据库中所有列的排序规则为:utf8mb4_unic
目前,我试图修改我的属性文件,以插入这些特殊字符,但它插入作为一个问号,而不是gulidsymbol,请查找以下变化。 如果有任何修改或错误,请帮助我。