|
|
加标识字段也好! 你给我的方法改进了些,加了个数组
CREATE TYPE "NAVTECH"."TABLENO_VA" AS VARRAY (30) OF NUMBER(30);
/
CREATE OR REPLACE PACKAGE "NAVTECH"."IFNESTUPDATE" AS
PROCEDURE InitNestLevel(TABLENO NUMBER);
FUNCTION GetNestLevel(TABLENO NUMBER) return number;
PROCEDURE NextNestLevel(TABLENO NUMBER);
PROCEDURE PreviousNestLevel(TABLENO NUMBER);
END IfNestUpdate;
/
CREATE OR REPLACE PACKAGE BODY "NAVTECH"."IFNESTUPDATE" AS
I NUMBER;
NestLevel TABLENO_VA :=TABLENO_VA(NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL);
PROCEDURE InitNestLevel(TABLENO NUMBER) IS
BEGIN
NestLevel(TABLENO) :=0;
END;
-- Function to return the trigger nest level
FUNCTION GetNestLevel(TABLENO NUMBER) RETURN NUMBER AS
BEGIN
IF NestLevel(TABLENO) IS NULL THEN
NestLevel(TABLENO) := 0;
END IF;
RETURN(NestLevel(TABLENO));
END;
-- Procedure to increase the trigger nest level
PROCEDURE NextNestLevel(TABLENO NUMBER) AS
BEGIN
IF NestLevel IS NULL THEN
NestLevel(TABLENO) := 0;
END IF;
NestLevel(TABLENO) := NestLevel(TABLENO) + 1;
END;
-- Procedure to decrease the trigger nest level
PROCEDURE PreviousNestLevel(TABLENO NUMBER) AS
BEGIN
NestLevel(TABLENO) := NestLevel(TABLENO) - 1;
END;
END IfNestUpdate; |
|