Execute Dynamic SQL in DB2 Store Procedure

January 9, 2008 at 3:38 pm (Programming) ()

วิธีการสร้าง SQL Statement ใน Store Procedure ของ DB2 และ Return Cursor ออกมา สามารถทำได้ตามนี้

CREATE PROCEDURE SP_COUNT_ROW( IN pTblName   VARCHAR(50) )
RESULT SET 1
LANGUAGE SQL
BEGIN

DECLARE vTmp VARCHAR(200);
DECLARE vStmt statement;

DECLARE c1 CURSOR WITH RETURN FOR vStmt;

SET vTmp = ‘SELECT count(*) as RowCount,’||pTableName||’ as TblName  ‘||FROM ‘|| pTblName ;
prepare vStmt from vTmp;

OPEN c1;

END

จากตัวอย่างเป็นการส่งชื่อ Table มาทำการ Count หา Row ที่มีอยู่ ผลลัพธ์ได้จะมีเป็น

call  SP_COUNT_ROW(‘CUSTOMERS’)

RowCount       TableName
———–       ———————
332,456            CUSTOMERS

ที่น่าแปลกใจก็คือมี Type variable “Statement” ด้วยเรอะ

Post a Comment