14
OVERVIEW OF SQL PL LANGUAGE ELEMENTS & MODULES

Overview of SQL PL Language Elements & Modules

  • Upload
    benito

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Overview of SQL PL Language Elements & Modules. Unit objectives. After completing this unit, you should be able to: Discuss DB2 data types Select the proper data types Work with user-defined data types Work with Row data type Work with Associative arrays - PowerPoint PPT Presentation

Citation preview

Page 1: Overview of SQL PL Language  Elements & Modules

OVERVIEW OF SQL PL LANGUAGE ELEMENTS & MODULES

Page 2: Overview of SQL PL Language  Elements & Modules

UNIT OBJECTIVESAfter completing this unit, you should be able to: Discuss DB2 data types Select the proper data types Work with user-defined data types Work with Row data type Work with Associative arrays Implement data type anchoring Create Module Replace Module Alter Module Drop Module

Page 3: Overview of SQL PL Language  Elements & Modules

DB2 BUILT-IN DATA TYPES

Page 4: Overview of SQL PL Language  Elements & Modules

USER-DEFINED DISTINCT TYPESUDTs –User-Defined Data Types: Defined on existing data types

Generates a function to cast between the distinct type and its source type

Generates a function to cast between the source type and its distinct type

Used to enforce business rulesCREATE

Page 5: Overview of SQL PL Language  Elements & Modules

ROW DATA TYPE

Page 6: Overview of SQL PL Language  Elements & Modules

ARRAY DATA TYPE Conventional array

CREATE TYPE arrType AS INTEGER ARRAY[1000]; Associative array

CREATE TYPE arrType2 AS INTEGER ARRAY[VARCHAR(100)];

CREATE TYPE arrType3 AS myRowType ARRAY[VARCHAR(100)];

Page 7: Overview of SQL PL Language  Elements & Modules

ASSOCIATIVE ARRAYS: EXAMPLE (1 OF 2)

Page 8: Overview of SQL PL Language  Elements & Modules

ASSOCIATIVE ARRAYS: EXAMPLE (2 OF 2)

Page 9: Overview of SQL PL Language  Elements & Modules

DATA TYPE ANCHORING Keep procedural variables in sync with table

columns Scalar anchoring

DECLAREempSalaryANCHORemployee.salary; Row anchoring

DECLARE emp ANCHOR ROWemployee;

BEGINDECLARE emp ANCHOR ROW employee;SETemp.empno= ‘000100’; SETemp.lastname= ‘McClung’;SETemp.firstname= ‘Naomi’;

END

Page 10: Overview of SQL PL Language  Elements & Modules

MODULES: OVERVIEW Module = bundle of several related objects:

SPs, UDFs, global variables and cursors, types, conditions

Similar to a class in OO languages (but single instance)•

Four main benefits: Code organization/structure Scoping

CALL mySchema.myModule.myProc() Information hiding

Each object can be “public” or “private” Global privilege control

Instead of granting/revoking on each SP, UDF or variable

Page 11: Overview of SQL PL Language  Elements & Modules

MODULES: MODULE SPECIFICATION Module that exportsa type, a Stored

Procedure, and a User-Defined Function CREATE OR REPLACE MODULE myMod; ALTER MODULE myMod PUBLISH

TYPE myRowTypAS ANCHOR ROW myTab; ALTER MODULE myMod PUBLISH

FUNCTION myFunc(val1 ANCHOR myTab.col1) RETURNS myRowTyp;

ALTER MODULE myMod PUBLISH PROCEDURE myProc(OUTparm1 ANCHOR myTab.col2);

Page 12: Overview of SQL PL Language  Elements & Modules

ENDMODULES: MODULE IMPLEMENTATION

Page 13: Overview of SQL PL Language  Elements & Modules

MODULES: OTHER STATEMENTS DROP MODULE myMod;

Drops entire module ALTER MODULE myMod DROP BODY;

Drop “implementation”, keeps “specification” ALTER MODULE myMod DROP PROCEDURE

myProc; Drops module object

GRANT EXECUTE ON MODULE myMod TO joe; Grants user joeexecute privilege on all routines

and access to all variables and types in myModModules

Page 14: Overview of SQL PL Language  Elements & Modules

UNIT SUMMARYHaving completed this unit, you should be able to: Discuss DB2 data types Select the proper data types Work with user-defined data types Work with Row data type Work with Associative arrays Implement data type anchoring Create Module Replace Module Alter Module Drop Module