Oracle中单引号与双引号的区别分析


、双引号的作用:

1、如果对象名、字段名加双引号,则严格区分大小写,否则Oracle均默认大 写。
2、如果对象中的某列使用的是Oracle的特有字符,比如说sysdate,那么查询该列时要使用双引号,否则,不会得到想要的结果。


建立测试表格,其中有一列sysdate,建立时需用“”括起来,声明它是普通字符串。


SQL> create table test
2  (
3  ID number not null,
4  Name varchar2(10),
5  "sysdate" varchar2(10)
6  );


Table created.

SQL> insert into test values(1,'mth','2013-03-01');

1 row created.

SQL> select * from test;

        ID NAME       sysdate
---------- ---------- ----------
         1 mth        2013-03-01

如果想单独查询“sysdate”列,应该用如下语句:

SQL> select "sysdate" from test;

sysdate
----------
2013-03-01

下面两种情况是不加双引号,和加单引号的情况,什么都不加,查询出来的是系统日期;加单引号,即显示出来的是单引号内的字符串。

SQL> select sysdate from test;

SYSDATE
------------------
10-APR-16

SQL> select 'sysdate' from test;

'SYSDAT
-------
sysdate

     
二、单引号的作用

1、用来引用一个字符串常量,也就是界定一个字符串的开始和结束,用于标识数字与字符的区别。
2、
转义符,对紧随其后出现的单引号进行转义

1、引用字符串常量

SQL> insert into test values(2, 'T Jones', '2013-04-01');

1 row created.

SQL> select * from test;

        ID NAME       sysdate
---------- ---------- ----------
         1 mth        2013-03-01
         2 T Jones    2013-04-01

字符串加双引号会报下面的错误:
SQL> insert into test values(3, "B James",'2013-04-01');
insert into test values(3,"B James",'2013-04-01')
                          *
ERROR at line 1:
ORA-00984: column not allowed here

字符串什么都不加会报缺少逗号的错误:
SQL> insert into test values(3, B James,'2013-04-01');
insert into test values(3,B James,'2013-04-01')
                            *
ERROR at line 1:
ORA-00917: missing comma

2、对单引号进行转义
SQL> select '''' from dual;

'
-
'
第一和第四个单引号表示引用一个字符串常量,第二个单引号对第三个单引号进行转义。

SQL> select '''Hello''' from dual;

'''HELL
-------
'Hello'
第一个和最后一个单引号表示引用一个字符串常量,第二个对第三个进行转义,第四个对第五个进行转义。




本文参考 http://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html 进行写作,谢谢!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30776559/viewspace-2078695/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30776559/viewspace-2078695/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值