SIGESA: Renombrar Tabla

En Base de Datos

  • Si se requiere modificar el nombre de una tabla
  • Modificar el nombre de la tabla por ejemplo: ESTADO_EVALUACION_OPE A ESTADO_EVALUACION_POA
ALTER TABLE "PPI"."ESTADO_EVALUACION_OPE" RENAME TO ESTADO_EVALUACION_POA;
  • Y luego debemos modificar el id de la tabla
ALTER TABLE "PPI"."ESTADO_EVALUACION_POA" RENAME COLUMN ID_ESTADO_EVALUACION_OPE TO ID_ESTADO_EVALUACION_POA;
  • Ahora debemos eliminar el sinomimo de la tabla
DROP PUBLIC SYNONYM ESTADO_EVALUACION_OPE;
  • Y así podemos determinar si existe una secuencia para la tabla
SELECT SQ_ESTADO_EVALUACION_OPE.NEXTVAL FROM DUAL;
  • Ahora a nivel de BD no existe una relación de la secuencia con tabla por tanto para renombrar la secuencia lo más fácil es eliminar la secuencia existente y crear una nueva
DROP SEQUENCE "PPI"."SQ_ESTADO_EVALUACION_OPE";
  • Y eliminamos el sinonimo de la secuencia
DROP PUBLIC SYNONYM SQ_ESTADO_EVALUACION_OPE;
  • Por tanto ahora creamos una nueva secuencia
CREATE SEQUENCE PPI.SQ_ESTADO_EVALUACION_POA START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE  NOCYCLE  NOORDER;
  • Creamos los sinonimos de la secuencia y tabla
CREATE PUBLIC SYNONYM ESTADO_EVALUACION_POA FOR "PPI"."ESTADO_EVALUACION_POA";
CREATE PUBLIC SYNONYM SQ_ESTADO_EVALUACION_POA FOR PPI.SQ_ESTADO_EVALUACION_POA;
  • Y volvemos aplicar los Grants de la tabla y sinonimo
GRANT DELETE, INSERT, UPDATE, SELECT, REFERENCES ON "PPI"."ESTADO_EVALUACION_POA" TO "WWW_SIGESA";
GRANT SELECT, ALTER ON PPI.SQ_ESTADO_EVALUACION_POA TO WWW_SIGESA;
GRANT SELECT ON "PPI"."ESTADO_EVALUACION_POA" TO "ANALISTA", "ANALISTA_SIGESA";

En Código SIGESA

  • Ahora debemos modificar a nivel de código para que soporte el cambio realizado
  • Empezamos modificando los script de creación de la tabla y i18N
  • Renombramos el archivo «EstadoEvaluacionOpeCreate.sql» x «EstadoEvaluacionPOACreate.sql»
  • Archivo Actual
--------------------------------------------------------
-- Archivo creado  -   Ing. Greivin Barrantes
--------------------------------------------------------
--------------------------------------------------------
--  DDL for Table ESTADO_EVALUACION_OPE     29/10/2021
--------------------------------------------------------

-- TABLE

CREATE TABLE PPI.ESTADO_EVALUACION_OPE
  (
    ID_ESTADO_EVALUACION_OPE NUMBER (19) NOT NULL ,
    NOMBRE VARCHAR2(255) NOT NULL ,
    ACTIVO  NUMBER (1) NOT NULL ,
    FECHA_CREACION      DATE NOT NULL ,
    USUARIO_CREACION NUMBER (19) NOT NULL ,
    FECHA_MODIFICACION DATE NOT NULL ,
    USUARIO_MODIFICACION NUMBER (19) NOT NULL ,
    CAMPO_CONFIGURABLE NUMBER (19) ,
    VERSION            NUMBER (19)
  )
  LOGGING ;

-- Sinonimo de tabla
CREATE PUBLIC SYNONYM ESTADO_EVALUACION_OPE for PPI.ESTADO_EVALUACION_OPE;

-- Secuencia de tabla
CREATE SEQUENCE PPI.SQ_ESTADO_EVALUACION_OPE
START WITH 1
INCREMENT BY 1
MINVALUE 1
NOCACHE 
NOCYCLE 
NOORDER;

-- Sinonimo de secuencia de tabla
CREATE PUBLIC SYNONYM SQ_ESTADO_EVALUACION_OPE for PPI.SQ_ESTADO_EVALUACION_OPE;


--INDEX

CREATE UNIQUE INDEX IDX_ESTADO_EVALUACION_OPE ON PPI.ESTADO_EVALUACION_OPE
  (
    ID_ESTADO_EVALUACION_OPE ASC
  )
  LOGGING ;


--GRANT
GRANT SELECT, ALTER ON "PPI"."SQ_ESTADO_EVALUACION_OPE" TO "WWW_SIGESA";
GRANT DELETE, INSERT, UPDATE, SELECT, REFERENCES on "PPI"."ESTADO_EVALUACION_OPE" to "WWW_SIGESA";