Oracle中的 单引号 和 双引号

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在Oracle中:
  双引号的作用是:oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写。例如建立、查询对象的时候,对象名、字段名加双引号,则示意Oracle将严格区分大小写。

有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上" "。

假如你有个表的字段叫sysdate,因为sysdate属于oracle中的特有字符,你要查询这个字段的时候使用
  select "sysdate" from table_name;
  但是你要是用  select 'sysdate' from table_name;
  那么你查出来的就是字符串,结果是sysdate。这是单引号字符常量的作用。
  单引号的作用是:加了单引号的字段是一个字类似字符串,并不区分大小写。单引号用于标识字符与数字的区别。
  当指定字符串文本时,必须用单引号将字符串文本引住。
  Oracle10g之前,假如字符串文本里含有单引号,那么必须运用两个单引号示意。例如:I'm a String!
  字符串文本则为:string_var:='I''m a String!'
  在oracle10g中可以运用其它分隔符(<>,[],{}等),留心,运用这些分隔符时,不仅要在分隔符前后加单引号,还要带有前缀q.

例:string_var:=q'[I''m a String!]';
  例如
  select * from table_name where id=1;这种代表查询的是数字
  select * from table_name where id='1';这种代表查询的是字符
  运用如下的更新语句不可以:update device set dept='select * from message where name='tom' ' ;
  处理要领:
  update device set dept='select * from message where name=' 'tom' ' where id=3' ;
  执行成功。
  原来,两个'' 示意了一个'

单引号在 Oracle 中有三种身份:
1. 用来引用一个字符串常量,也就是界定一个字符串的开始和结束
2. 转义符,对紧随其后出现的字符(单引号)进行转义
3. 表示它本身,也就是它作为一个字符串的一部分而出现在一个字符串常量中
当具有不同身份的单引号紧挨着一起出现在 sql 语句中时常常令人迷惑不解,下面结合具体实例弄清每个单引号的含义。
总结经验:
1. 出现在表达式开头和结尾的这两个单引号的含义肯定是表示引用一个字符串,界定字符串的开始和结束
2. 如果单引号出现在表达式中间(即非表达式开头和结尾的单引号),且多个单引号之间没有任何其他字符,那么当我们从左向右分析时,第一对单引号中的第一个是转义符,它对紧随其后的第二个单引号进行转义,以使第二个单引号作为一个字符出现在一个字符串常量中。第二队,第三队,以此类推......


示例一:
select '''' from dual;
result '
上图中,表达式 '''' 中第1、4个单引号表示引用一个字符串常量,表达式的剩余部分我们从左往右分析,由于中间是一对单引号,故此对中的第一个是转义符,其对第二个进行转义,使第二个表示单引号本身。分析得出这里有一个字符串常量,其中只有一个单引号字符。


示例二:
select 'exit''''' from dual
result exit''

上图中,表达式 'exit''''' 中第一个和最后一个单引号表示引用一个字符串常量,表达式的剩余部分我们依然从左往右分析。剩余部分中,遇到的第一个单引号后面紧随一个单引号,我们将其作为一对,根据示例一,这一对的解析结果为一个单引号字符本身;然后继续向右走,又遇到一对紧挨着的单引号,同理,他们的解析结果也是一个单引号字符本身。分析得出这里的字符串常量包含exit和两个单引号字符。sql 语句的运行结果与我们的分析结果一致。


不同版本,不同数据库MySQL,SQL Server...单引号和双引号的区别使用,与数据库保留关键字冲突的解决,可能与Oracle不完全一致,可查看官方文档或测试。


参考材料

Oracle中的 单引号 和 双引号


博客内容仅作学习/交流/参考之用,欢迎大家交流探讨;E-Mail:dwang2014#hotmail.com(# ——> @)

如果内容信息侵犯了您的合法权益,请告知我,我将及时处理。

站在巨人的肩上才能看得更远,一步一个脚印才能走得更远。分享成长,交流进步,转载请注明出处!

ORACLE报ORA-06550错误 最后排查是建表的问题,有一个字段没有自动匹配上,就重新添加字段,结果导入成功,问题得到解决!当使用存储过程时,ORA-06550错误比较常见。PLS-00103: 出现符号 "end-of-file"在需要下列之一时:;解决此类问题,需要检查存储过程的语法、参数类型、数据库限制等问题。PLS-00112: 在用引号括起的标识符中出现行结尾标识。PL/SQL: ORA-00911: 无效字符。2. 存储过程的定义超出了数据库限制。4. 存储过程中传入的参数类型不匹配。3. 存储过程中调用了不存在的对象。 阅读详情

相关推荐

oracle06553,ora-06552,ora-06553的错误

今天打开plsql 进去 table 报错 “ora-06552 pl…,ora-06553 plsql ”,无法查看表内容了,原来是我昨天更新了 “update props$ set value$=’ZHS16GBK’where name=’NLS_CHARACTERSET’;update props$ set value$=’ZHS16GBK’where...

weixin_36380427的博客 1186

oracle update单引号,Oracle学习笔记:update的字段中包括单引号

平时update的时候直接更改字段内的值,例如:update table_temp set name = 'Hider' where id = 100;但更新后的值中包括单引号,则不能按以上方式进行更新,会报错。遂测试之。-- 建立测试表create table temp_cwh_test_1219(id varchar2(10),name varchar2(20));-- 插入数据insert ...

weixin_32629285的博客 3323

oracle单引号双引号的深入举例分析

oracle单引号双引号的区别 一:双引号 双引号的作用:关键字,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。 1.双引号引住关键字(特有字符) 1:select "sysdate" from dual;等同于select sysdate from dual;   2:select 'sysdate' from table

知也无涯 892

oracle中字段别名带引号引发的标识符无效报错

–正常,别名使用引号且为大写,最外层select语句where条件不带双引号时,字段名可大写可小写 select * from (select id as “IDD” from tableName) where idd = 1; –正常,别名使用引号且为大写,最外层select语句where条件不带双引号时,字段名可大写可小写 select * from (select id as “IDD” from tableName) where IDD = 1; –正常,别名使用引号且为大写,最外层select语句

qq1009397770的博客 1537

oracle 中使用单引号(')双引号(")

--在ORACLE中,单引号有两个作用: -- 1:字符串是由单引号引用 -- 2:转义。 --单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 --1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。 SQL> select '''' result from dual; RESULT ------ ' --第二个单引

产品经理,程序人生 1万+

ORACLE SQL语句中,单引号双引号的使用

/**在ORACLE双引号" 被当做一个普通的字符串来处理**/ SELECT '"' AS "字符串结果" FROM DUAL; /**正常状态下,两个''包含的字符串被当做字面值**/ SELECT 'ziwen@163.com' FROM DUAL; /**测试一下三个单引号的情况  : ORA-01756:引号内的字符串没有正确结束**/ SELECT ''' FROM DU

似水流年 8632

oracle单引号双引号的区别

单引号双引号oracle都支持,但是两者是有区别的。 一、双引号的作用:关键字,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。 1.双引号引住关键字 select "sysdate" from dual;等同于select sysdate from dual;  如下则不会输出时间,只会输出sysdate这个字符串。  select 'sysd

积累点滴,保持自我 7968

oracle中的单引号双引号介绍

oracle中的单引号双引号介绍双引号 标识列,单引号 标识字符串在Oracle中:   双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。  而单引号则示意:这个加了单引号的字段是一个字类似字符串,并不区分大小写。  单引号用于标识字符与数字的区别  当指定字符串文本时,必须用单引号将字符串文本引住。  Oracle10g之前,假如字符串文本里含有单引号,那么必须运用两个单引号示意。例如:I'm a String!  字符串文本则

SimbaDan的专栏 1094

Oracle单引号双引号的区别

Oracle单引号双引号的区别

Hillbo的博客 1253

oracle中的单引号双引号的区别

http://topic.csdn.net/u/20101227/21/780db32c-dce3-4fcf-9981-a07ef136c3c6.html 字串是用单引号的。 双引号表示标识符,比如别名,列名,表名,存储过程名等。 一般情况下标识符oracle会自动转为大写再跟数据字典做比较。如果加了双引号则不再做大写转换,直接按双引号内的内容进行比较。所以一般不加双引号。 比如你建表时指

1712

区别oracle单引号双引号

      对于我们刚入门的oracle初学者来说,学习sql语言是入门的第一步,面对单引号双引号,我们可能会困惑,什么时候用单引号,什么时候用双引号呢?     单引号------  值为字符日期的时候 如  you  06-june   还有使用连接符||,插入空格|| || ,插入描述性文字 || I love Oralce||     双引号---

meboy88scofiled的专栏 984

oracle引号的用法,oracle 中使用单引号(')双引号(")

--在ORACLE中,单引号有两个作用:-- 1:字符串是由单引号引用-- 2:转义。--单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解--1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。sql> select '''' result from dual;RESULT------'--第二个单引号被作为转义符,第三个单引号被转...

weixin_32705525的博客 5121

Oracle 中使用单引号(')双引号(")

转自:http://www.linuxidc.com/Linux/2011-04/34855.htm 在Oracle中,单引号有两个作用:     1:字符串是由单引号引用     2:转义。   单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解   1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。         SQ

2332

OracleLinux关于双引号单引号的知识点小结

一般情况下,我们使用单引号居多       但在字符集不一致的时候,双引号单引号区别还是很大的       而且,使用ODBC桥导入外部数据的时候,表名是带双引号的              先看个案例:       以前遇到过一个这样的问题       一个朋友在创建表时,表名采用小写,并且表名用双引号括了起来       表已经创建了,但是在查询的时候,显示表名不存在,可在user_tabl

记录创业路上的一些想法 2408

Oracle双引号单引号之间的关系区别?

Oracle双引号单引号之间的区别? 首先我说一下我用的oracle版本 select * from v$version; 一、双引号双引号引用关键字。(在此12.2.0.1.0不行) select "sysdate" from dual; select sysdate from dual; 如下则不会输出时间,只会输出sysdate这个字符串。 ...

weixin_42039637的博客 939

Oracle中的 单引号 双引号【待整理】

Oracle中:   双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。   而单引号则示意:这个加了单引号的字段是一个字类似字符串,并不区分大小写。 单引号用于标识字符与数字的区别   当指定字符串文本时,必须用单引号将字符串文本引住。   Oracle10g之前,假如字符串文本里含有单引

conque60的专栏 1688

oracle pl/sql语句 输出单引号双引号

单引号的输出是'''',一个四个单引号,最左最右的两个是引号,中间的两个表示输出的字符是单引号' 双引号输出是'''''',一共六个单引号,最左最有两个是引号,中间四个表示输出的字符是双引号"

hust2014owen的博客 3138

Oracle数据库中单引号' ' 双引号" "的区别

Oracle数据库中,单引号' '双引号" "两者都是可以表示字符串的,但是在使用时会有所区别。 在双引号" "中,一般在如下场合使用 表示其内部的字符串严格区分大小写 (比如用作字段别名时区分大小写) 用于特殊字符或关键字 (比如包含空格,#或&时) 不受标识符规则限制 会被当成一个列来处理 当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式...

Ninewind 9291
上一篇: Java ClassLoader
下一篇: MySQL数据库引擎、数据事务与隔离级别
普通玩家
博客等级 码龄12年 9粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值