0% found this document useful (0 votes)
4 views

02.basic SQL Procedure Structure

Uploaded by

Raka Irvaldo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

02.basic SQL Procedure Structure

Uploaded by

Raka Irvaldo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Pemrograman Basis Data

Basic SQL Procedure Structure


Tri Afirianto, S.T., M.T.
[email protected]
Universitas Brawijaya
Unit Objectives
• After completing this unit, you should be able to:
• Describe the structure of an SQL procedure
• Explain various clauses of the CREATE PROCEDURE
statement
• List the statements that can be coded in the procedure
body
• Alter Procedure
• Drop Procedure
• Create Module
• Replace Module
• Alter Module
• Drop Module
SQL Stored Procedures
• Based on ANSI/ISO standard language SQL/PSM
• Simple language which includes:
• Feature from block-structured language
• Exception handling
• Familiar to Sybase, Oracle, Informix, Microsoft SQL
Server programmers
SQL Procedure Language
• SQL Procedures support:
• Multiple parameters: input, output, input/output
• Returning multiple output result sets to a client or to a
calling SQL procedure
• SQL Procedures are defined in DB2 catalog
• SQL Procedure source is stored in DB2 catalog
• SQL Procedure Language (SQL PL) is folded to
uppercase – Exception: delimited values
SQL Procedure Language
SQL Procedure Language
• A CREATE PROCEDURE statement
• LANGUAGE SQL
• A procedure body which may include:
• Compound statement(s): BEGIN … END
• Declaration statements
• Assignment statements
• Conditional statements
• Iterative control structure: LOOPs, and so forth
• Exception handling
• CALL another stored procedure
Structure SQL Procedure
Structure SQL Procedure
An SQL Procedure can be:
SQL Procedure Language Statements
• Not limited to stored procedures
• Some platform differences
• Facilitate application solution
• Add business logic capability to SQL language
Where to Use “;”
Declarations
• Local variables
• DECLARE var_name datatype[ DEFAULT value];
• Example: DECLARE my_var INTEGER DEFAULT 6;
• Default value is NULL
• Variable name is folded to upper case
• Rules for ambiguous names:
• First, check to see if there is an existing column of the same name
(in one of the referenced tables)
• When a column does not exist with that name, then check to see
if there is an already defined SQL variable or parameter with the
same name
• Assumed to be a column name
Declarations
• Condition declaration:
• DECLARE not_found CONDITION FOR SQLSTATE ‘02000’;
• Local cursor declaration:
• DECLARE c1 CURSOR FOR select * from staff;
• WITH RETURN TO CLIENT / WITH RETURN TO CALLER
• Handler declaration:
• DECLARE EXIT HANDLER FOR SQLEXECPTION…;
Assignments
SQL Procedures: Under the Cover
• Preparing an SQL procedure for execution
SQL Procedures: Under the Cover
• How things work in DB2 for Linux, UNIX, and
Windows
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
Module: Module Specification
• Module that exports a 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(OUT parm1 ANCHOR myTab.col2);
Modules: Module Implementation
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 joe execute privilege on all routines and
access to all variables and types in myMod Modules
Unit Summary
Having completed this unit, you should be able to:
• Describe the structure of an SQL procedure
• Explain various clauses of the CREATE PROCEDURE
statement
• List the statements that can be coded in the
procedure body
• Alter Procedure
• Drop Procedure
• Create Module
• Replace Module
• Alter Module
• Drop Module

You might also like