oracle数据库--Oracle双引号和单引号的区别小结
注意:
在取别名,某些to_char中,以及创建表空间名字 还有创建用户的密码时,这些时候需要使用双引号。双引号里面的内容是严格区分大小写,单引号则不用,系统自动翻译成大写。
其他一些情况如下:
一般情况下,我们使用单引号居多但在字符集不一致的时候,双引号和单引号区别还是很大的
而且,使用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
文章部分转载自: http://bbs.51cto.com/thread-1008096-1-1.html
oracle数据库--Oracle双引号和单引号的区别小结相关推荐
- (双引号)与 ' '(单引号)的区别
" "(双引号)与 ' '(单引号)的区别 还是回到我们的command line来吧 经过前面的学习,应该很清楚当你在shell prompt后面敲打键盘.直到按下enter的时 ...
- Shell 双引号和单引号的区别
1.字符串变量定义的三种方式 Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量.示例如下: str1="testString" # ...
- c语言双引号和单引号的区别_Python中的单引号和双引号有什么区别?
在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式可以避免出错之外,还可以减少转义字符的使用,使程序看起来更清晰. 举两个例子: 1.包含单引号的字符 ...
- C语言(CED)C语言中双引号和单引号的区别
最简单的区别: 在字符型变量赋初值时,用单引号:为字符串变量赋初值时用双引号! 具体区别: 1.大小 单引号引起的一个字符,其大小为1个Byte. 双引号引起的字符串,因为在其结尾需加一个二进制&qu ...
- postgres 注意双引号和单引号的区别
双引号用于表名.列名 单引号用于值 const sql = `INSERT INTO "message"."sqs_events" ("message ...
- c语言双引号和单引号的区别
两者是不同的 'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值; "A"是个字符串
- JavaScript 中双引号、单引号和反引号的区别
关注微信公众号:前端充电宝,获取最新原创文章: 在 JavaScript 中,单引号('')和双引号("") 经常用于创建字符串.通常情况下,使用双引号或单引号没有区别,它们最后都 ...
- 这就要从双引号和单引号的作用讲起:
这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出.例如: $abc='I love u'; echo $abc // ...
- linux终端中书名号,Linux双引号、单引号和反向单引号
Linux里的双引号.单引号和反向单引号有不同的用法,不好记忆,这里总结一下. 单引号'' 单引号是一个强引用的符号.什么意思呢?它忽略了所有的特殊符号,比如$.\这样的符号,单引号里的内容全部看做普 ...
最新文章
- 团队-象棋游戏-开发文档
- springboot整合websocket实现一对一消息推送和广播消息推送
- python 调用linux内核api_Linux系统调用及用户编程接口(API)学习
- wxWidgets:wxAuiManagerEvent类用法
- 肝!用 Highcharts 绘制饼图,也很强大
- Java数据解析之XML(原创)
- VLC设置串流的TTL值
- 提取图像色彩主色调工具
- 使用 Python 构建电影推荐系统
- Head First 系列书籍分享,Head First Python (中文版·第2版),Head First Java(中文版):第二版——涵盖Java 5.0...
- Paypal无限转圈
- QNX实时操作系统简介
- 3脚送话器内部电路图_电话机维修送话电路故障
- 自动配置的IPv4地址怎么取消
- 国稻种芯绿色沃土计划 农业大健康-万祥军:对话化肥惹的祸?
- Whitestorm.js入门
- 学习的目的:建立世界观、学以致用、知行合一
- 编译imx6 android,SAIL-IMX6Q ANDROID开发环境搭建与系统编译
- FRM 5.2 资本资产定价模型
- viewport和@media查询