SIGESA / Oracle: Machote create table / Creación de Tabla

/********************************************************/
/********************************************************/
/* VERIFICACIÓN  EXISTENCIA TABLA                       */
/********************************************************/
/********************************************************/
SELECT * FROM PRODUCTO_POAI;

/********************************************************/
/********************************************************/
/* CREACIÓN DE TABLA                                    */
/********************************************************/
/********************************************************/
CREATE TABLE "PPI"."PRODUCTO_POAI"
(
    "ID_PRODUCTO_POAI"              NUMBER (19,0)       NOT NULL ENABLE,
    "PLAN_OPERATIVO_ANUAL_INST"     NUMBER (19,0)       NOT NULL ENABLE, 
    "PROGRAMA_PRESUPUESTARIO"       NUMBER(19,0)        NOT NULL ENABLE, 
    "CODIGO"                        NUMBER(10,0)        NOT NULL ENABLE, 
    "DESCRIPCION"                   VARCHAR2(4000 BYTE) NOT NULL ENABLE,
    "PRODUCTO_POAI_ORIGEN"          NUMBER(19,0), 
    
    
    /********************************************************/
    /* CAMPOS: FRAMEWORK SDK-UNA                            */
    /********************************************************/
    "FECHA_CREACION"                DATE                NOT NULL ENABLE,
    "USUARIO_CREACION"              NUMBER(19,0)        NOT NULL ENABLE,
    "FECHA_MODIFICACION"            DATE                NOT NULL ENABLE,
    "USUARIO_MODIFICACION"          NUMBER(19,0)        NOT NULL ENABLE,
    "VERSION"                       NUMBER(19,0),
    "CAMPO_CONFIGURABLE"            NUMBER(19,0),
    
    /********************************************************/
    /* LLAVE: PRIMARIA                                      */
    /********************************************************/
    CONSTRAINT "PK_PRODUCTO_POAI" PRIMARY KEY("ID_PRODUCTO_POAI"),
    
    /********************************************************/
    /* LLAVE: FORANEAS                                      */
    /********************************************************/
    CONSTRAINT "FK_PROD_POAI_POAI"          FOREIGN KEY ("PLAN_OPERATIVO_ANUAL_INST")   REFERENCES "PPI"."PLAN_OPERATIVO_ANUAL_INST" ("ID_PLAN_OPERATIVO_ANUAL_INST") ENABLE, 
    CONSTRAINT "FK_PROD_POAI_PROGA_PRESU"   FOREIGN KEY ("PROGRAMA_PRESUPUESTARIO")	    REFERENCES "EPF"."PROGRAMA_PRESUPUESTARIO" ("ID_PROGRAMA_PRESUPUESTARIO") ENABLE, 
    CONSTRAINT "FK_PROD_POAI_OBJETI_POAI"   FOREIGN KEY ("PRODUCTO_POAI_ORIGEN")	    REFERENCES "PPI"."PRODUCTO_POAI" ("ID_PRODUCTO_POAI") ENABLE,
      
      
    CONSTRAINT FK_PRO_POAI_USU_CRE FOREIGN KEY(USUARIO_CREACION)        REFERENCES SAS.USUARIO(ID_USUARIO),
    CONSTRAINT FK_PRO_POAI_USU_MOD FOREIGN KEY(USUARIO_MODIFICACION)    REFERENCES SAS.USUARIO(ID_USUARIO),
    CONSTRAINT FK_PRO_POAI_CAM_CON FOREIGN KEY(CAMPO_CONFIGURABLE)      REFERENCES SAS.CAMPO_CONFIGURABLE(ID_CAMPO_CONFIGURABLE)
);

/********************************************************/
/********************************************************/
/* COMENTARIOS                                          */
/********************************************************/
/********************************************************/
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."ID_PRODUCTO_POAI"              IS 'Identificador unico de la tabla.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."PLAN_OPERATIVO_ANUAL_INST"     IS 'Id de la tabla PLAN_OPERATIVO_ANUAL_INST.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."PROGRAMA_PRESUPUESTARIO"       IS 'Id de la tabla PROGRAMA_PRESUPUESTARIO.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."CODIGO"                        IS 'Codigo del producto POAI.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."DESCRIPCION"                   IS 'Descripcion del producto POAI.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."PRODUCTO_POAI_ORIGEN"          IS 'Producto POAI del que se origina.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."FECHA_CREACION"                IS 'Fecha cuando se creo el registro por primera vez.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."USUARIO_CREACION"              IS 'Usuario que creo el registro por primera vez.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."FECHA_MODIFICACION"            IS 'Fecha cuando se modifico el registro por ultima vez.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."USUARIO_MODIFICACION"          IS 'Usuario que realizo la ultima modificacion del registro.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."CAMPO_CONFIGURABLE"            IS 'Hace referencia a una tabla que tiene campos disponibles para utilizar de ser necesario.';
COMMENT ON COLUMN "PPI"."PRODUCTO_POAI"."VERSION"                       IS 'Version de la tabla.';
COMMENT ON TABLE "PPI"."PRODUCTO_POAI"                                  IS 'Tabla que guarda los productos POAI.';


/********************************************************/
/********************************************************/
/* SECUENCIA                                            */
/********************************************************/
/********************************************************/
CREATE SEQUENCE "PPI".SQ_PRODUCTO_POAI START WITH 1 INCREMENT BY 1;

/********************************************************/
/********************************************************/
/* SINONIMOS                                            */
/********************************************************/
/********************************************************/
CREATE PUBLIC SYNONYM PRODUCTO_POAI FOR "PPI"."PRODUCTO_POAI";
CREATE PUBLIC SYNONYM SQ_PRODUCTO_POAI FOR PPI.SQ_PRODUCTO_POAI;


/********************************************************/
/********************************************************/
/* VERIFICACIÓN  EXISTENCIA TABLA                       */
/********************************************************/
/********************************************************/
SELECT * FROM PRODUCTO_POAI;


/********************************************************/
/********************************************************/
/* ELIMINAR TABLA                                       */
/********************************************************/
/********************************************************/
DROP SEQUENCE "PPI".SQ_PRODUCTO_POAI;
DROP PUBLIC SYNONYM PRODUCTO_POAI;
DROP PUBLIC SYNONYM SQ_PRODUCTO_POAI;
DROP TABLE "PPI".PRODUCTO_POAI;

/********************************************************/
/********************************************************/
/* GRANT PERMISOS SOBRE LA TABLA                        */
/********************************************************/
/********************************************************/
GRANT SELECT, DELETE, UPDATE, INSERT ON PPI.PRODUCTO_POAI TO WWW_SIGESA;
GRANT SELECT, ALTER ON PPI.SQ_PRODUCTO_POAI TO WWW_SIGESA;
GRANT SELECT ON "PPI"."PRODUCTO_POAI" TO "ANALISTA", "ANALISTA_SIGESA";