Powered By Blogger

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

Function to create table script & necessary primary info with table name parameter

 CREATE OR REPLACE FUNCTION fnc_table_script (p_table_name VARCHAR2)
    RETURN VARCHAR2
IS
    V_SCRIPT   VARCHAR2 (4000);
BEGIN
    SELECT    'CREATE TABLE '
           || P_TABLE_NAME
           || '(  
  ID                NUMBER(10),
  UDID         VARCHAR2(30),
  STATUS            NUMBER(1),
  CREATED_BY        NUMBER(10),
  CREATED_ON        DATE,
  UPDATED_BY        NUMBER(10),
  UPDATED_ON        DATE,
  COMPANY_NO        NUMBER(10),
  BRANCH_NO   NUMBER(10)
);'
           || CHR (10)
           || '
CREATE SEQUENCE '
           || P_TABLE_NAME
           || '_ID_SEQ'
           || '
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
BEGIN
   
   IF INSERTING THEN
    IF :NEW.ID IS NULL THEN
    :NEW.ID := '
           || P_TABLE_NAME
           || '_ID_SEQ.NEXTVAL;
    END IF;
    :NEW.CREATED_ON := SYSDATE;
    :NEW.CREATED_BY := FNC_USER_ID(''APP_USER'');
   
   
   ELSIF UPDATING THEN
   
    :NEW.UPDATED_ON := SYSDATE;
    :NEW.UPDATED_BY := FNC_USER_ID(''APP_USER'');
   
   END IF;
   
   EXCEPTION
     WHEN OTHERS THEN
       RAISE;
END '
           || P_TABLE_NAME
           || '_TRG;
/'
           || '
CREATE UNIQUE INDEX '
           || P_TABLE_NAME
           || '_PK ON '
           || P_TABLE_NAME
           || '
(ID);
ALTER TABLE '
           || P_TABLE_NAME
           || ' '
           || ' ADD (
  CONSTRAINT '
           || P_TABLE_NAME
           || '_PK'
           || '
  PRIMARY KEY
  (ID)
  USING INDEX '
           || P_TABLE_NAME
           || '_PK
  ENABLE VALIDATE);
  
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...