Oracle PL/SQL編寫PL/SQL程式碼的注意事項
(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. 迴圈語句
基本迴圈
.....
END
WHILE迴圈
WHILE XXX LOOP
....
END
FOR迴圈
FOR X in [REVERSE] lower_bound..upper_bound
....
END
如:
BEGIN
FOR i IN REVERSE 1..10
INSERT INTO temp VALUES(1);
END
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL 01 程式碼編寫規則SQL
- 使用PL/Scope分析PL/SQL程式碼SQL
- 配置UltraEdit為Oracle PL/SQL程式碼編輯器OracleSQL
- PL/SQL的編碼規則SQL
- Oracle PL/SQLOracleSQL
- 加密PL/SQL程式碼加密SQL
- Oracle PL/SQL程式碼中的註釋OracleSQL
- 應遵循的PL/SQL編碼規則 - ORACLE (zt)SQLOracle
- Oracle PL/SQL 程式設計基礎 例項OracleSQL程式設計
- Oracle 11g中的Native PL/SQL程式碼編譯OracleSQL編譯
- Oracle PL/SQL INDICESOracleSQL
- oracle PL/SQL示例OracleSQL
- 【Oracle】--PL/SQL匯入Oracle sql指令碼"傻瓜教程"OracleSQL指令碼
- PL/SQL 事務持久化異常 / PL/SQL commit優化SQL持久化MIT優化
- 保護你的 PL/SQL 程式碼!SQL
- oracle pl/sql programmingOracleSQL
- PL/SQLSQL
- 【TUNE_ORACLE】列出LOOP套LOOP的PL/SQL程式碼SQL參考OracleOOPSQL
- 【SQL/PLUS】Oracle PL/SQL程式設計用set serveroutput onSQLOracle程式設計Server
- ORACLE之常用FAQ:SQL&PL/SQLOracleSQL
- 關於pl/sql的程式碼保護SQL
- Oracle 的PL/SQL語言使用OracleSQL
- oracle PL/SQL中的過載OracleSQL
- Oracle PL/SQL編譯警告PLSQL_WARNINGSOracleSQL編譯
- Oracle PL/SQL塊簡介OracleSQL
- Oracle PL/SQL中EXCEPTION用法OracleSQLException
- Oracle PL/SQL 之 函式OracleSQL函式
- PL/SQL Developer 連線 OracleSQLDeveloperOracle
- oracle INDEX BY Pl/sql陣列OracleIndexSQL陣列
- 【PL/SQL】oracle建立dblinkSQLOracle
- Oracle PL/SQL之GROUP BY CUBEOracleSQL
- Oracle PL/SQL迴圈示例OracleSQL
- SQL&PL/SQL (轉)SQL
- PL/SQL 宣告SQL
- PL/SQL cursorSQL
- PL/SQL打包SQL
- PL/SQL DEVSQLdev
- pl/sql程式碼中不得犯的錯誤!SQL