PL/SQL Coding Guidelines - Part 2

29
PL/SQL & SQL CODING GUIDELINES – PART 2 Larry Nung

Transcript of PL/SQL Coding Guidelines - Part 2

Page 1: PL/SQL Coding Guidelines - Part 2

PL/SQL & SQL CODING GUIDELINES – PART 2Larry Nung

Page 2: PL/SQL Coding Guidelines - Part 2

AGENDAVariables & TypesReferenceQ & A

2

Page 3: PL/SQL Coding Guidelines - Part 2

VARIABLES & TYPESGeneral

Page 4: PL/SQL Coding Guidelines - Part 2

8. TRY TO USE ANCHORED DECLARATIONS FOR VARIABLES,

CONSTANTS AND TYPES.

Page 5: PL/SQL Coding Guidelines - Part 2

BADDECLARE

v_empName VARCHAR2(10); BEGIN

… END;

Page 6: PL/SQL Coding Guidelines - Part 2

GOODDECLARE

v_empName emp.ename%TYPE; BEGIN

… END;

Page 7: PL/SQL Coding Guidelines - Part 2

9.TRY TO HAVE A SINGLE LOCATION TO DEFINE YOUR TYPES.

Page 8: PL/SQL Coding Guidelines - Part 2

10. TRY TO USE SUBTYPES FOR CONSTRUCTS USED OFTEN IN YOUR APPLICATION.

Page 9: PL/SQL Coding Guidelines - Part 2

BADDECLARE

v_str VARCHAR2(4000); BEGIN

… END;

Page 10: PL/SQL Coding Guidelines - Part 2

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

11. NEVER INITIALIZE VARIABLES WITH NULL.

Page 12: PL/SQL Coding Guidelines - Part 2

BADDECLARE

v_str VARCHAR2(30) := null; BEGIN

... END;

Page 13: PL/SQL Coding Guidelines - Part 2

GOODDECLARE

v_str VARCHAR2(30); BEGIN

... END;

Page 14: PL/SQL Coding Guidelines - Part 2

12. AVOID COMPARISONS WITH NULL VALUE, CONSIDER USING IS [NOT] NULL.

Page 15: PL/SQL Coding Guidelines - Part 2

BADDECLARE

v_str VARCHAR2(30); BEGIN

if v_str = null then …

end if; END;

Page 16: PL/SQL Coding Guidelines - Part 2

GOODDECLARE

v_str VARCHAR2(30); BEGIN

if v_str is null then …

end if; END;

Page 17: PL/SQL Coding Guidelines - Part 2

13. AVOID INITIALIZING VARIABLES USING FUNCTIONS IN THE DECLARATION SECTION.

Page 18: PL/SQL Coding Guidelines - Part 2

BADDECLARE

l_company_name VARCHAR2(30) := util_pck.get_company_name(in_id => 47);

BEGIN …

END;

Page 19: PL/SQL Coding Guidelines - Part 2

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

14. NEVER OVERLOAD DATA STRUCTURE USAGES.

Page 21: PL/SQL Coding Guidelines - Part 2

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

15. NEVER USE QUOTED IDENTIFIERS.

Page 23: PL/SQL Coding Guidelines - Part 2

BAD<<main>> DECLARE

"v_str" VARCHAR2(30) ; BEGIN

…END main;

Page 24: PL/SQL Coding Guidelines - Part 2

16. AVOID USING OVERLY SHORT NAMES FOR DECLARED OR IMPLICITLY DECLARED IDENTIFIERS.

Page 25: PL/SQL Coding Guidelines - Part 2

17. AVOID THE USE OF ROWID OR UROWID

Page 26: PL/SQL Coding Guidelines - Part 2

REFERENCE26

Page 28: PL/SQL Coding Guidelines - Part 2

Q&A28

Page 29: PL/SQL Coding Guidelines - Part 2

QUESTION & ANSWER

29