问题产生原因:

insert into t_Cluster_Showresult(Outhostname,Domainlist,Iplist,Classify) values ("2014512-7","www.renren.com\twww.baidu.com","192.168.2.1","2")

此条语句执行不成功,报错列不允许,经查,是因为双引号的问题,改成insert into t_Cluster_Showresult(Outhostname,Domainlist,Iplist,Classify) values ('2014512-7','www.renren.com\twww.baidu.com','192.168.2.1','2012') 即可。

   一般情况下,我们使用单引号居多
       但在字符集不一致的时候,双引号和单引号区别还是很大的
       而且,使用ODBC桥导入外部数据的时候,表名是带双引号的
       
       先看个案例:
       以前遇到过一个这样的问题
       一个朋友在创建表时,表名采用小写,并且表名用双引号括了起来
       表已经创建了,但是在查询的时候,显示表名不存在,可在user_tables又能看到这张表
       观察得出,加了双引号的小写表名存入数据库后也是小写
       用双引号扩起来的标识符都作为原来的大小写格式存放在数据字典中
       而Oracle在调用时,默认的使用大写格式去数据字典中查询
       以列名为例:

代码:

sys@EMREP> create table test(a varchar2(10), a varchar2(10));

create table test(a varchar2(10), a varchar2(10))
                                  *
ERROR at line 1:
ORA-00957: duplicate column name
sys@EMREP> create table test("a" varchar2(10), a varchar2(10));

Table created.

sys@EMREP> SELECT table_name, column_name FROM user_tab_cols WHERE table_name = 'TEST';

TABLE_NAME                     COLUMN_NAME
------------------------------ ------------------------------
TEST                           a
TEST                           A
sys@EMREP> insert into test values ('1','1');

1 row created.

sys@EMREP> commit;

Commit complete.

sys@EMREP> select * from test;

a          A
---------- ----------
1          1
  以大写方式存在数据字典中,验证一下:
sys@EMREP> create table test_xxxx(a varchar2(1), "A" varchar2(1));
create table test_xxxx(a varchar2(1), "A" varchar2(1))
                                      *
ERROR at line 1:
ORA-00957: duplicate column name

双引号括起来的更确切一点叫 "引证标识符"
       比如我们创建一张表,我们在写CREATE语句的时候,就算表名用小写,数据字典里存储的所有标识符还是大写的
       但是要想在数据字典里存储小写的标识符,那写CREATE语句的时候就得用双引号 
       所以要标识符区分大小写,或在标识符中包含空格,或者使用保留字做标识符,就得用双引号括起来的引证标识符

双引号:
             ① 表示其内部的字符串严格区分大小写
             ② 用于特殊字符或关键字
             ③ 不受标识符规则限制
             ④ 会被当成一个列来处理
             ⑤ 当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式符包装起来
                 避免出现ORA-01821: date format not recognized错误, to_char在处理格式字符串时,会忽略双引号


代码:

sys@EMREP> select to_char(sysdate, 'hh24"小时"mi"分"ss"秒"') AS RESULT from dual;

RESULT
------------------
17小时31分30秒

单引号:
             ① 表示字符串常量
             ② 字符串中的双引号仅仅被当作一个普通字符进行处理。此时,双引号不需要成对出现
                  例如:


代码:

sys@EMREP> select 'hh24"小时""mi"分"""ss"秒"' AS RESULT from dual;

RESULT
-----------------------------
hh24"小时""mi"分"""ss"秒"

③ 动态SQL:
                在一对单引号包含的语句中,必须有一对相邻的单引号表示一个单引号
                两个相邻的单引号的作用,第一个是用来表示转义字符,后面一个表示真正的单引号
                单引号里要用单引号应该是两个连续的单引号,而不是双引号
                例如:


代码:

select 'alter system kill session ''''|| sid||','||serial#|| '''';' from v$session

 

Oracle 中单引号和双引号的区别的更多相关文章

  1. PHP中单引号与双引号的区别分析

    From: http://www.jb51.net/article/53973.htm 在PHP中,我们可以使用单引号或者双引号来表示字符串.不过我们作为开发者,应该了解其中的区别.单引号与双引号对于 ...

  2. js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量)

    js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量) 一.总结 1.html中属性规范是 ...

  3. Shell脚本中单引号(‘)和双引号(“)的使用区别

    在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用'$param'这种带引号的使用的场景,首 ...

  4. php 单引号,双引号,反引号区别

    PHP中单引号,双引号,反引号具有不同的含义,最大的几项区别如下: 一.单引号中,任何变量($var).特殊转义字符(如"\t \r \n"等)不会被解析,因此PHP的解析速度更快 ...

  5. Unix Shell中单引号、双引号字符、反斜杠、反引号的使用[转]

    在执行shell脚本的时候,shell将会对脚本中的行进行解释,然后执行:对于一些特殊处理的句子,我们可以使用引号或者反斜线来避免shell解释执行之.如下,当在命令行中输入:echo *child. ...

  6. PHP三种字符串界定符的区别(单引号,双引号,<<<)

      单引号,双引号,<<<的区别如下: 前续:今天突然遇到了<<<EOT,可在运行的时候出错了,所以就度娘了下. 1.单引号:’a string’  \’是唯一的转 ...

  7. python单引号(&#39;)、双引号(&quot;)、三引号(&#39;&#39;&#39;,&quot;&quot;&quot;)

    python对字符串的表示方法比c更有灵活性,但是也更难理解. 为了在平时使用.看代码过程中对着单引号(').双引号(").三引号(''',""")不混淆,知道 ...

  8. 每日linux命令学习-引用符号(反斜杠\,单引号&#39;&#39;,双引号&quot;&quot;)

    引用符号在解析器中保护特殊元字符和参数扩展,其使用方法有3种:反斜杠(\),单引号(’‘),双引号(“”). 单引号和双引号必须匹配使用,均可在解析器中保护特殊元字符和通配符,但是单引号(硬转义)主要 ...

  9. linux 单引号,双引号,反引号

    单引号 目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出. 1. [root@jszwl161 SP49EP9]# echo '$*><! ...

  10. awk输出单引号,双引号【转】

    双引号: awk '{print "\""}'        #放大:awk '{print "  \"  "}' 使用“”双引号把一个双引 ...

随机推荐

  1. Toast 工具

    public class Utils { private static Toast toast; public static void showtoast(Context context,String ...

  2. sql中视图的作用

    视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态 ...

  3. laravel 5.3 学习之路——路由(资源,别名)

    laravel的路由定义中,其中route:resoure(),可以直接定义类似restful风格的URL 例如:Route::resource('system/role','System\RoleC ...

  4. Jquery 全选、反选问题解析

    最近工作中,需要使用Jquery实现复选框的全选和反选,本人虽然不是专职撸前端的,但这个小问题感觉也没什么难度,下面直接上代码: <div id="list"> < ...

  5. Html5 基础----列表详述

    html5列表 标签 列表分为:  有序列表/无序列表/自定义列表,用的最多的为无序列表和自定义列表 1.有序列表(order list) eg:把

  6. 老李分享:《Linux Shell脚本攻略》 要点(八)

    老李分享:<Linux Shell脚本攻略> 要点(八)   1.打印进程 [root@localhost program_test]# ps -e | head  PID TTY     ...

  7. flyway和liquibase的使用样例

    在代码上我们有svn和git等诸多的版本控制方法. 但是在数据库上却没有相应的工具.一度导致多环境见的数据库同步难以维持. flyway和liquibase都是常见的数据库版本控制工具. flyway ...

  8. kubenetes无法创建pod/创建RC时无法自动创建pod的问题

    一.问题概述 问题1: 虽然每次通过yaml创建rc都显示成功了,但是 kubectl get pod却没显示任何的pod. 问题2: 直接通过yaml创建pod提示apixxx 问题3: 通过.js ...

  9. 17-7-25-js记录

    先说明下为什么说好每天一更,周五周六周日都没有更新.因为在周五的时候,上司主动找我谈了转正后的工资4-4.5K.本来想好是6K的,后来打听了一圈公司的小伙伴,都是5-5.5,我就把自己定到了5K.万万 ...

  10. 如何还原phpstorm默认设置

    我不知道phpstorm有没有这个功能,反正我是没找到. 首先,找到phpstorm的配置文件,一般在C:\Users\Administrator 每个人的都可能不一样. 如果phpstorm打开的话 ...