Powered By Blogger

বুধবার, ১৯ অক্টোবর, ২০২২

Function to create sequence script associate with table name

 CREATE OR REPLACE FUNCTION fnc_seq_script (p_table_name VARCHAR2)

    RETURN VARCHAR2

IS

    V_SCRIPT   VARCHAR2 (4000);

BEGIN

    SELECT    'CREATE SEQUENCE '

           || 'S_'

           || P_TABLE_NAME

           || '_ID'

           || '

START WITH 1

INCREMENT BY 1

MINVALUE 0

NOCACHE 

NOCYCLE 

NOORDER;'

           || CHR (10)

           || '

CREATE OR REPLACE TRIGGER '

           || P_TABLE_NAME

           || '_TRG BEFORE INSERT OR UPDATE

ON '

           || P_TABLE_NAME

           || '

REFERENCING NEW AS New OLD AS Old

FOR EACH ROW

DECLARE

V_SEQ_NO NUMBER;

BEGIN


   IF INSERTING THEN

   

   IF :NEW.ID IS NULL THEN

   :NEW.ID :='

           || 'S_'

           || P_TABLE_NAME

           || '_ID'

           || '.NEXTVAL;

   END IF;

   

   IF :NEW.COMPANY_ID IS NULL THEN

   :NEW.COMPANY_ID := FNC_GET_COMPANY;

   END IF;

   

   IF :NEW.LOCATION_ID IS NULL THEN

   :NEW.LOCATION_ID := FNC_GET_LOCATION;

   END IF;

   

   IF :NEW.STATUS IS NULL THEN

   :NEW.STATUS := 1;

   END IF;

   :NEW.CREATED_BY := FNC_USER_ID(NVL(V(''APP_USER''),USER));

   :NEW.CREATED_ON := SYSDATE;


   ELSIF UPDATING THEN


   :NEW.UPDATED_BY := FNC_USER_ID(NVL(V(''APP_USER''),USER));  

   :NEW.UPDATED_ON := SYSDATE; 


   END IF;



   EXCEPTION

     WHEN OTHERS THEN

       RAISE;

END '

           || P_TABLE_NAME

           || '_TRG;

/

SHOW ERRORS;

 

  

CREATE OR REPLACE PUBLIC SYNONYM '

           || P_TABLE_NAME

           || ' FOR '

           || P_TABLE_NAME

           || ';

'

      INTO V_SCRIPT

      FROM DUAL;


    RETURN V_SCRIPT;

END;

/

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Row-level “Add” icon using a virtual column (APEX-safe)

1️⃣ Enable Insert in the Interactive Grid IG → Attributes Edit → Allowed Add Row → Yes 2️⃣ Add a New Column (Icon column) Column...