Oracle PL/SQL編寫PL/SQL程式碼的注意事項

fsz521job發表於2007-01-11

(1) 幾個值得注意的關鍵字(2) 變數常量賦值注意:

---------------------------------------------------------------------

[@more@]

(1) 幾個值得注意的關鍵字

% :屬性提示符.

= :附值運算子.

-> :關聯運算子.

|| :連線運算子.

** :冪運算子.

<< :符號開始符.

>> :符號結束符.

(2) 變數常量賦值注意:

VARCHAR使用中文或數字使用雙引號(””);

“123變數” VARCHAR2(20);

字串使用單引號(‘’);

‘Hello Word’

(3) 編寫PL/SQL建議規則

定義變數,建議使用v_做字首:v_sal,v_job

定義常量,建議使用c_做字首:c_rate

定義遊標,建議使用_cursor為字尾:emp_cursor

定義例外,建議使用e_做字首:e_integrity_error

定義PL/SQL表型別,建議使用_table_type做字尾:sal_table_type

定義PL/SQL表變數,建議使用_table做字尾:sal_table

定義PL/SQL記錄型別時,建議使用_record_type做字尾:emp_record_type

定義PL/SQL記錄變數時,建議使用_record做字尾:emp_record

(4) 編寫PL/SQL注意

?使用SELECT語句進行查詢時,如果未找到資料將會產生NO_DATA_FOUND例外.

?使用SELECT語句進行查詢時,如果返回多條資料將會產生TOO_MANY_ROWS例外.

?使用WHERE子句時,變數名不能與列名相同,否則會產生例外.

(5) 遊標屬性使用注意

PL/SQL遊標包括SQL%ISOPEN, SQL%FOUND, SQL%NOFOUND, SQL%ROWCOUNT四種屬性

1. SQL%ISOPEN

該屬性用於確定SQL遊標是否開啟。但在執行SQL語句的時候,Oracle會隱含開啟遊標,所以對於開發人員來說該屬性永遠為FALSE.

2. SQL%FOUND

遊標屬性SQL%FOUND用於確定SQL語句是否執行成功。成功返回TRUE,否則返回FALSE.

3. SQL%NOTFOUND

遊標屬性SQL%NOTFOUND用於確定SQL語句是否成功,SQL%FOUND用法一致,返回值相反.

4. SQL%ROWCOUNT

遊標屬性返回SQL語句正確執行的條數.用於取得操作的條數.

(6) 事務控制語句

事務控制語句包括COMMIT, ROLLBACK, SAVEPOINT語句三種.

COMMIT:提交語句

ROLLBACK:回滾語句

SAVEPOINT:事務儲存點

(7) 控制結構語句

1. 條件分支語句③④⑤

IF XXXX1 THEN

YYYYY1;

ELSIF XXX2 THEN

YYYYY2;

ELSE

YYYYY3;

END IF;

注意:紅色部分的ELSIF.

CASE selector

WHEN XX1 THEN YY1;

WHEN XX2 THEN YY2;

.....

END CASE;

2. 迴圈語句

基本迴圈

LOOP

.....

END LOOP;

WHILE迴圈

WHILE XXX LOOP

....

END LOOP;

FOR迴圈

FOR X in [REVERSE] lower_bound..upper_bound LOOP

....

END LOOP;

如:

BEGIN

FOR i IN REVERSE 1..10 LOOP

INSERT INTO temp VALUES(1);

END LOOP;

END;

/

REVERSE標識時,迴圈從高到低執行.(10,9...1);

巢狀迴圈和標號

DELCARE

Result INT;

BEGIN

<>

FOR i IN 1..100 LOOP

<>

FOR j IN 1..100 LOOP

Result :=i^j;

EXIT other WHEN result=1000;

EXIT LOOP inner;

Dbms_output.put_line(result);

END LOOP outer;

Dbms_output.put_line(result);

END;

/

3. 順序控制語句

GOTO語句

跳轉到標號處執行.

NULL語句

NULL語句不做任何操作,並且將控制傳遞到下一條語句,主要是提高PL/SQL語句的可讀性.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/300209/viewspace-889887/,如需轉載,請註明出處,否則將追究法律責任。

相關文章