Download - PL/SQL Coding Guidelines - Part 2
![Page 1: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/1.jpg)
PL/SQL & SQL CODING GUIDELINES – PART 2Larry Nung
![Page 2: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/2.jpg)
AGENDAVariables & TypesReferenceQ & A
2
![Page 3: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/3.jpg)
VARIABLES & TYPESGeneral
![Page 4: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/4.jpg)
8. TRY TO USE ANCHORED DECLARATIONS FOR VARIABLES,
CONSTANTS AND TYPES.
![Page 5: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/5.jpg)
BADDECLARE
v_empName VARCHAR2(10); BEGIN
… END;
![Page 6: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/6.jpg)
GOODDECLARE
v_empName emp.ename%TYPE; BEGIN
… END;
![Page 7: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/7.jpg)
9.TRY TO HAVE A SINGLE LOCATION TO DEFINE YOUR TYPES.
![Page 8: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/8.jpg)
10. TRY TO USE SUBTYPES FOR CONSTRUCTS USED OFTEN IN YOUR APPLICATION.
![Page 9: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/9.jpg)
BADDECLARE
v_str VARCHAR2(4000); BEGIN
… END;
![Page 10: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/10.jpg)
GOODCREATE OR REPLACE PACKAGE PKG_SUBTYPE AS
SUBTYPE STRING_MAX IS VARCHAR2(4000); END PKG_SUBTYPE;
DECLARE v_str PKG_SUBTYPE.STRING_MAX;
BEGIN ...
END;
![Page 11: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/11.jpg)
11. NEVER INITIALIZE VARIABLES WITH NULL.
![Page 12: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/12.jpg)
BADDECLARE
v_str VARCHAR2(30) := null; BEGIN
... END;
![Page 13: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/13.jpg)
GOODDECLARE
v_str VARCHAR2(30); BEGIN
... END;
![Page 14: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/14.jpg)
12. AVOID COMPARISONS WITH NULL VALUE, CONSIDER USING IS [NOT] NULL.
![Page 15: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/15.jpg)
BADDECLARE
v_str VARCHAR2(30); BEGIN
if v_str = null then …
end if; END;
![Page 16: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/16.jpg)
GOODDECLARE
v_str VARCHAR2(30); BEGIN
if v_str is null then …
end if; END;
![Page 17: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/17.jpg)
13. AVOID INITIALIZING VARIABLES USING FUNCTIONS IN THE DECLARATION SECTION.
![Page 18: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/18.jpg)
BADDECLARE
l_company_name VARCHAR2(30) := util_pck.get_company_name(in_id => 47);
BEGIN …
END;
![Page 19: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/19.jpg)
GOODDECLARE
v_str VARCHAR2(30); BEGIN
<<init>> BEGIN v_str := util_pck.get_company_name(inId => 47); EXCEPTION WHEN VALUE_ERROR THEN ...END init;
END;
![Page 20: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/20.jpg)
14. NEVER OVERLOAD DATA STRUCTURE USAGES.
![Page 21: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/21.jpg)
BAD<<main>> DECLARE
v_str VARCHAR2(30); BEGIN
<<sub>> DECLARE v_str VARCHAR2(4000) ; BEGIN …END sub;
END main;
![Page 22: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/22.jpg)
15. NEVER USE QUOTED IDENTIFIERS.
![Page 23: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/23.jpg)
BAD<<main>> DECLARE
"v_str" VARCHAR2(30) ; BEGIN
…END main;
![Page 24: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/24.jpg)
16. AVOID USING OVERLY SHORT NAMES FOR DECLARED OR IMPLICITLY DECLARED IDENTIFIERS.
![Page 25: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/25.jpg)
17. AVOID THE USE OF ROWID OR UROWID
![Page 26: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/26.jpg)
REFERENCE26
![Page 27: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/27.jpg)
REFERENCE Trivadis PL/SQL & SQL Coding Guidelines
Version 2.0 http://www.trivadis.com/sites/default/files/downlo
ads/PLSQL_and_SQL_Coding_Guidelines_2_0_HiRes.pdf
27
![Page 28: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/28.jpg)
Q&A28
![Page 29: PL/SQL Coding Guidelines - Part 2](https://reader036.vdocuments.net/reader036/viewer/2022062412/588226ac1a28ab52368b51c9/html5/thumbnails/29.jpg)
QUESTION & ANSWER
29