ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-PL/SQL语言基础-词汇单元-分隔符、标识符

PLSQL Language Reference-PL/SQL语言基础-词汇单元-分隔符、标识符

原创 Oracle 作者:LuiseDalian 时间:2014-03-06 19:08:57 0 删除 编辑

词汇单元

PL/SQL词汇单元是它的最小的组件:分隔符、标识符、字面量、注释。

分隔符

分隔符:是一个字符或字符的组合,在PL/SQL中有特殊的意义。不要在分隔符中嵌入其它的字符。

+


:=


=>


%



.


||


/


**

幂运算操作符

(


)


:


,


<<

标签分隔符

>>


/*


*/


*



..


=


<>


!=


~=


^=


<


>


<=


>=


@

远程访问指示符

--


;


-


标识符

标识符命名pl/sql元素,包括:常量、光标、异常、关键字、标签、包、保留字、子程序、类型、变量。

标识符中的每个字符都是有意义的,例lastnamelast_name是不同的。

必须通过一个或多个空白符或一个标点符号来分隔相邻的标识符。

除了用户括起来的用户定义的标识外,PL/SQL是大小写不敏感的,例lastname, LastNameLASTNAME是相同的。

1)保留字和关键字

它们是PL/SQL中具有特殊意义的标识符。

不能使用保留字做为普通的用户定义的标识符。但可以使用它们作为括起来的用户定义的标识符,不建议这么做;

可以使用关键字做为用户定义的标识符,但不建议。

保留字



关键字



 

预定义的标识符

预定义的标识符是在预定义包standard中声明的,例invalid_number

--查看预定义标识符

select type_name from all_types where predefined = 'YES';


可以使用预定义的标识符作为用户定义的标识符,但不建议。

 

1)用户定义的标识符

用户定义的标识符由数据库字符集字符组成,或者为普通的或者是括起来的。

n  普通的用户定义标识符:以字母开头;可以包含字母、数字和$,#,_字符;不为保留字。

数据库字符集定义了哪些字符被划分为字母和数字。这些标识符的表示在数据库字符集中不能超过30字节。

--可接受的普通的用户定义的标识符

X

t2

phone#

credit_limit

LastName

oracle$number

money$$$tree

SN##

try_again_

--不可接受的

mine&yours     -- &

debit-amount   -- -

on/off         --on/

user id        --空格

n  括起来的用户定义的标识符:由双引号括起来。在双引号之间可以是数据库字符集中的任何字符,但除了双引号、换行符和null字符。

--可接受的括起来的用户定义的标识符

"X+Y"

"last name"

"on/off switch"

"employee(s)"

"*** header info ***"

括起来的用户定义的标识符在数据库字符集中不能超过30字节,包括2侧双引号在内。

括起来的用户定义的标识符是大小写敏感的,只有一个例外,如果括起来的用户定义的标识符去掉两侧的双引号是一个合法的普通的用户定义的标识符,则引用该标识符时双引号是可选的,如果去掉双引号,则是大小写不敏感的。


 

--该引用合法

declare

    "HELLO" varchar2(10) := 'hello';

begin

    dbms_output.put_line(Hello);

end;


--引用不合法,带引号是大小写敏感的

declare

    "HELLO" varchar2(10) := 'hello';

begin

    dbms_output.put_line("Hello");

end;


--使用保留字做为括起来的用户定义的标识符

declare

    "BEGIN" varchar2(15) := 'UPPERCASE';

    "Begin" varchar2(15) := 'Initial Capital';

    "begin" varchar2(15) := 'lowercase';

begin

    dbms_output.put_line("BEGIN");

    dbms_output.put_line("Begin");

    dbms_output.put_line("begin");

end;


-- 括起来的用户定义的标识符,保留字和非保留字省略双引号的差别

declare

    "HELLO" varchar2(10) := 'hello';  -- HELLO不是保留字

    "BEGIN" varchar2(10) := 'begin';  -- BEGIN是保留字

begin

    dbms_output.put_line(Hello);      -- 双引号是可选的

    dbms_output.put_line(BEGIN);      -- 双引号是必须的

end;


--保留字做为括起来用户自定义的标识符是大小写敏感的

declare

    "HELLO" varchar2(10) := 'hello';  -- HELLO不是保留字

    "BEGIN" varchar2(10) := 'begin';  -- BEGIN是保留字

begin

    dbms_output.put_line(Hello);      -- 大小写不敏感

    dbms_output.put_line("Begin");    -- 大小写敏感

end;


可以使用保留字做为括起来的用户定义的标识符,因为保留字不是合法的普通的用户定义的标识行,必须始终使用双引号,因此它总是大小写敏感的。

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

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5675805