PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-分隔符、識別符號

LuiseDalian發表於2014-03-06

詞彙單元

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章