pl/sql coding guidelines - part 3
TRANSCRIPT
PL/SQL & SQL CODING GUIDELINES – PART 3Larry Nung
AGENDANumeric Data TypesCharacter Data TypesBoolean Data TypesLarge ObjectsReferenceQ & A
2
VARIABLES & TYPESNumeric Data Types
18. AVOID DECLARING NUMBER VARIABLES OR SUBTYPES WITH NO
PRECISION.
BADDECLARE v_number number; BEGIN ... END;
GOODDECLARE v_number number(9, 2); BEGIN ... END;
19. TRY TO USE PLS_INTEGER INSTEAD OF NUMBER FOR ARITHMETIC OPERATIONS WITH INTEGER VALUES (NO DECIMAL POINT).
VARIABLES & TYPESCharacter Data Types
20. AVOID USING CHAR DATA TYPE.
BADDECLARE v_str char(4000) := 'test'; BEGIN DBMS_OUTPUT.PUT_LINE(Length(v_str)); END;
GOODDECLARE v_str varchar2(4000) := 'test'; BEGIN DBMS_OUTPUT.PUT_LINE(Length(v_str)); END;
21. AVOID USING VARCHAR DATA TYPE.
BADDECLARE v_str varchar(4000);BEGIN …END;
GOODDECLARE v_str varchar2(4000); BEGIN …END;
22. NEVER USE ZERO-LENGTH STRINGS TO SUBSTITUTE NULL.
BADDECLARE v_str varchar2(4000) := ''; BEGIN DBMS_OUTPUT.PUT_LINE(CASE WHEN v_str
is null THEN 'null' ELSE 'not null' END); END;
GOODDECLARE v_str varchar2(4000); BEGIN DBMS_OUTPUT.PUT_LINE(CASE WHEN v_str
is null THEN 'null' ELSE 'not null' END); END;
23. ALWAYS DEFINE YOUR VARCHAR2 VARIABLES USING CHAR SEMANTIC.
BADDECLARE v_str varchar(200); BEGIN ... END;
GOODDECLARE v_str varchar(200 char); BEGIN ... END;
VARIABLES & TYPESBoolean Data Types
24. TRY TO USE BOOLEAN DATA TYPE FOR VALUES WITH DUAL MEANING.
BADDECLARE v_IsBigger number(1) := 1; BEGIN DBMS_OUTPUT.PUT_LINE(CASE WHEN
v_IsBigger = 1 THEN 'True' ELSE 'False' END);
END;
GOODDECLARE v_IsBigger BOOLEAN := true; BEGIN DBMS_OUTPUT.PUT_LINE(CASE WHEN
v_IsBigger THEN 'True' ELSE 'False' END); END;
VARIABLES & TYPESLarge Objects
25. AVOID USING THE LONG AND LONG RAW DATA TYPES.
REFERENCE27
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
28
Q&A29
QUESTION & ANSWER
30