1. Introducción
Vamos a crear un esquema "XIMO_SCHM" y las siguientes tablas:
- EDU_NUM_REGS_TABLA Para despreciar las tablas que estan vacías
- EDU_TARIFAS_LUCA Para cargar las tarifas de LUCA ya que no se han pasado las tarifas en la copia de seguridad de la BD
- EDU_TARI_TARIFAS. Copia de la tabla OPS$GTTORA.TARI_TARIFAS pero con datos que cargaremos de la tabla anterior.
- EDU_OT-LUCA Para cargar los objetos tributarios de LUCA
- EDU_BUCLE Tabñla auxiliar para separar principal, recargo, intereses y costas
1. CREACIÓN DEL ESQUEMA Y TABLESPACES
CREATE USER XIMO_SCHM IDENTIFIED BY "Oracle+1962";
GRANT CREATE SESSION TO XIMO_SCHM;
GRANT CREATE TABLE TO XIMO_SCHM;
GRANT CREATE ANY VIEW TO XIMO_SCHM; --FOR CREATING VIEWS IN ANY SCHEMA
CREATE TABLESPACE XIMO_SCHM_TABLESPACE DATAFILE 'ximo_schm.dat' SIZE 10M AUTOEXTEND ON;
ALTER USER XIMO_SCHM QUOTA 100M ON XIMO_SCHM_TABLESPACE;
---------------------------------------------------------------------------------------
--SCRIPT FOR GRANTING SELECT ON ALL TABLES FORM OPS$GTTORA SCHEMA TO XIMO_SCHM
--@see https://www.support.dbagenesis.com/post/grant-select-on-all-tables-in-a-schema
BEGIN
FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='OPS$GTTORA') LOOP
EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to XIMO_SCHM';
END LOOP;
END;
2. Creación de tablas e insertar datos
2.1 Tabla EDU_NUM_REGS_TABLA
CREATE TABLE XIMO_SCHM.EDU_NUM_REGS_TABLA TABLESPACE XIMO_SCHM_TABLESPACE
AS
SELECT NUM_ROWS,TABLE_NAME,OWNER
--SELECT *
FROM ALL_TABLES A
WHERE A.OWNER IN ('OPS$GTTORA','OPS$AD_GTTL')
ORDER BY TABLE_NAME;
CREATE UNIQUE INDEX XIMO_SCHM.EDU_NUM_REGS_TABLA_TABLE_NAME ON XIMO_SCHM.EDU_NUM_REGS_TABLA(TABLE_NAME, OWNER) TABLESPACE XIMO_SCHM_TABLESPACE ;
COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.NUM_ROWS IS 'NUMERO DE REGISTROS DE LA TABLA';
COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.TABLE_NAME IS 'NOMBRE DE LA TABLA';
COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.OWNER IS 'ESQUEMA';
COMMENT ON TABLE XIMO_SCHM.EDU_NUM_REGS_TABLA IS 'SE GUARDAN EL NUMERO DE REGISTROS DE LAS TABLAS';
------------------------------------------------------------------------------------------
--Actualizar el numero dem registros
BEGIN
FOR t IN (SELECT TABLE_NAME, OWNER
FROM XIMO_SCHM.EDU_NUM_REGS_TABLA)
LOOP
EXECUTE IMMEDIATE 'UPDATE XIMO_SCHM.EDU_NUM_REGS_TABLA EDU SET EDU.NUM_ROWS= (SELECT COUNT(*) FROM '||t.OWNER||'.'||t.TABLE_NAME||') '
||' WHERE EDU.TABLE_NAME = '''|| t.TABLE_NAME || ''' AND EDU.OWNER = ''' || t.OWNER || '''' ;
dbms_output.put_line( t.TABLE_NAME) ;
dbms_output.put_line( 'UPDATE XIMO_SCHM.EDU_NUM_REGS_TABLA EDU SET EDU.NUM_ROWS= (SELECT COUNT(*) FROM '||t.OWNER||'.'||t.TABLE_NAME||') '
||' WHERE EDU.TABLE_NAME = '''|| t.TABLE_NAME || ' AND EDU.OWNER = ' || t.OWNER || '' ) ;
END LOOP;
END;
2.2 Tabla EDU_TARIFAS_LUCA
CREATE TABLE XIMO_SCHM.EDU_TARIFAS_LUCA_CSV (
--ID_SUBO INT(11),
ID_SUBO NUMBER(10,0),
NOMBRE_SUBO VARCHAR(100),
MANCOMUNIDAD VARCHAR(100),
ID_CORG NUMBER(10,0),
ID_CSUB NUMBER(10,0),
ID_CREC NUMBER(10,0),
ID_SCOR NUMBER(10,0),
COD_CONC VARCHAR(100),
NOMBRE_PARA_SUBO_CSUB VARCHAR(100),
COD_TSUC VARCHAR(100),
NOMBRE_PARA_SUBO_CREC VARCHAR(100),
ID_GRTR NUMBER(10,0),
ID_TARI NUMBER(10,0),
DESCR_TARI VARCHAR(100),
DESCR_TITC VARCHAR(100),
VALOR_TARIFA_FIJA NUMBER(10,2),
DESCR_MCTA VARCHAR(100),
DESDE_TRTA VARCHAR(100),
HASTA_TRTA VARCHAR(100),
IMPORTE_UNIDAD NUMBER(10,2),
PORCENTAJE NUMBER(10,4),
IMPORTE_FIJO NUMBER(10,2)
) TABLESPACE XIMO_SCHM_TABLESPACE;
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_SUBO IS 'ID SUBORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_SUBO IS 'NOMBRE SUBORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CORG IS 'ID CONCEPTO ORGANIZACION';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CSUB IS 'ID SUBCONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CREC IS 'ID SUBCONCEPTO RECAUDABLE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_SCOR IS 'ID SUBCONCEPTO ORGANIZACION';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.COD_CONC IS 'CODIGO CONCEPTO (EJ. GU, BA,..)';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_PARA_SUBO_CSUB IS 'NOMBRE DEL SUBCONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.COD_TSUC IS 'CODIGO SUBCONCEPTO (EJ GU1,GU2,GU3..)';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_PARA_SUBO_CREC IS 'NOMBRE SUBCONCEPTO RECAUDABLE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_GRTR IS 'ID GRUPO TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_TARI IS 'ID TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_TARI IS 'DESCRIPCION TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.VALOR_TARIFA_FIJA IS 'VALOR TARIFA FIJA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_TITC IS 'DESCRIPCION TIPO TARIFA (FIJA, POR TRAMOS..)';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_MCTA IS 'DESCRIPCION TIPO DE CALCULO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESDE_TRTA IS 'TRAMO DESDE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.HASTA_TRTA IS 'TRAMO HASTA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.IMPORTE_UNIDAD IS 'IMPORTE POR UNIDAD';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.PORCENTAJE IS 'PORCENTAJE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.IMPORTE_FIJO IS 'IMPORTE FIJO';
COMMENT ON TABLE XIMO_SCHM.EDU_TARIFAS_LUCA_CSV IS 'TARIFAS IMPORTADAS DE LUCA';
2.3 Tabla EDU_TARI_TARIFAS
--CREATE TABLE XIMO_SCHM.EDU_TARI_TARIFAS TABLESPACE XIMO_SCHM_TABLESPACE AS (SELECT * FROM OPS$GTTORA.TARI_TARIFAS TARI);
CREATE TABLE "XIMO_SCHM"."EDU_TARI_TARIFAS"
(ID_TARI NUMBER(10,0) NOT NULL ENABLE,
COD_TITC VARCHAR2(1) NOT NULL ENABLE,
COD_STTA VARCHAR2(2) NOT NULL ENABLE,
DESCR_TARI VARCHAR2(100) NOT NULL ENABLE,
NOMBRE_UNIDADES_TARI VARCHAR2(240),
VALOR_FIJA_TARI NUMBER(21,6),
CUOTA_MINIMA_TARI NUMBER(17,2),
FECHA_DESDE_TARI DATE,
FECHA_HASTA_TARI DATE,
COD_MCTA VARCHAR2(2) NOT NULL ENABLE,
ELIMINADO_TARI VARCHAR2(1) NOT NULL ENABLE,
ID_GRTR NUMBER(10,0),
CUOTA_MAXIMA_TARI NUMBER(17,2),
COD_MCTA_CORREC VARCHAR2(2),
FECHA_PRES_LIQ_PROV_TARI NUMBER(4,0),
FECHA_PRES_LIQ_DEFS_TARI NUMBER(4,0),
COD_USUA_TARI VARCHAR2(20),
FECHA_ACCION_TARI DATE,
DOBLE_UNID_TARI VARCHAR2(1),
APLICACION_TARI VARCHAR2(1),
APLI_PRORRATEO_TARI VARCHAR2(1),
FORMULA_CALCULO_TARI CLOB,
--Campos añadidos por nosotrosque hacen referencia al concepto y subconcepto
ID_CORG NUMBER(10,0),
ID_CSUB NUMBER(10,0),
ID_CREC NUMBER(10,0),
ID_SCOR NUMBER(10,0),
NOMBRE_PARA_SUBO_CSUB VARCHAR2(100),
NOMBRE_PARA_SUBO_CREC VARCHAR2(100)
) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX "XIMO_SCHM"."IX_TARI_EDU_GRTR" ON "XIMO_SCHM"."EDU_TARI_TARIFAS" ("ID_GRTR") TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX "XIMO_SCHM"."IX_TARI_EDU_TARI" ON "XIMO_SCHM"."EDU_TARI_TARIFAS" ("ID_TARI") TABLESPACE XIMO_SCHM_TABLESPACE;
COMMENT ON TABLE XIMO_SCHM.EDU_TARI_TARIFAS IS 'TABLA DE TARIFAS SIMILARES A TARI_TARIFAS DE GTT PERO SE HA AMPLIADO CON ALLGUNOS CAMPOS. SE HA CAPTURADO DESDE LA TABLA EDU_TARIFAS_LUCA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_TARI IS 'ID TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_TITC IS 'COD TIPO TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_STTA IS 'CODIGO TIPO DE CALCULO (F-IJA, T-RAMOS..)';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.DESCR_TARI IS 'DESCRIPCION TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_UNIDADES_TARI IS 'NOMBRE DE LAS UNIDADES EMPLEADAS EN LA TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.VALOR_FIJA_TARI IS 'VALOR DE LA TRAIFA FIJA EN SU CASO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.CUOTA_MINIMA_TARI IS 'CUOTA MINIMA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_DESDE_TARI IS 'FECHA DESDE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_HASTA_TARI IS 'FECHA HASTA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_MCTA IS 'COD MODOI DE CALCULO DE LA TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ELIMINADO_TARI IS 'ELIMINADA S/N';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_GRTR IS 'ID GRUPO TARIFA - PODEMOS RELACIONAR ID_TARI CON ID_GRTR';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.CUOTA_MAXIMA_TARI IS 'CUOTA MAXIMA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_MCTA_CORREC IS 'CORRECTOR ??';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_PRES_LIQ_PROV_TARI IS 'DIAS DE PRESCRIPCION PROVISIONAL';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_PRES_LIQ_DEFS_TARI IS 'DIAS DE PRESCRIPCION DEFINITIVA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_USUA_TARI IS 'CODIGO USUARIO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_ACCION_TARI IS 'FECHA ACCION';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.DOBLE_UNID_TARI IS 'DOBLE UNIODAD DE LA TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.APLICACION_TARI IS 'APLICACION';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.APLI_PRORRATEO_TARI IS 'PRORRATEO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FORMULA_CALCULO_TARI IS 'FORMULA';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CORG IS 'ID CONCEPTO ORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CSUB IS 'ID SUBCONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CREC IS 'ID SUBCONCEPTO RECAUDABLE';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_SCOR IS 'ID SUBCONCEPTO ORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_PARA_SUBO_CSUB IS 'NOMBRE PARA SUBCONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_PARA_SUBO_CREC IS 'NOMBRE PARA SUBCONCEPTO RECAUDABLE';
--Insertamos valores desde la tabla de LUCA
INSERT INTO XIMO_SCHM.EDU_TARI_TARIFAS ETARI
(
ID_TARI,COD_TITC,
COD_STTA,
DESCR_TARI,NOMBRE_UNIDADES_TARI,
VALOR_FIJA_TARI,
CUOTA_MINIMA_TARI,FECHA_DESDE_TARI,FECHA_HASTA_TARI,COD_MCTA,
ELIMINADO_TARI,ID_GRTR,CUOTA_MAXIMA_TARI,COD_MCTA_CORREC,FECHA_PRES_LIQ_PROV_TARI,FECHA_PRES_LIQ_DEFS_TARI,
COD_USUA_TARI,FECHA_ACCION_TARI,DOBLE_UNID_TARI,APLICACION_TARI,APLI_PRORRATEO_TARI,
FORMULA_CALCULO_TARI ,
--Campos añadidos por nosotrosque hacen referencia al concepto y subconcepto
ID_CORG, ID_CSUB, ID_CREC, ID_SCOR,
NOMBRE_PARA_SUBO_CSUB,
NOMBRE_PARA_SUBO_CREC
)
SELECT DISTINCT
LCSV.ID_TARI,TITC.COD_TITC,
CASE
WHEN TITC.COD_TITC ='F' THEN 'F' --Único
WHEN TITC.COD_TITC ='S' THEN 'IS' --Indice de situacion
WHEN TITC.COD_TITC ='C' THEN 'CV' --Categoria de via
WHEN TITC.COD_TITC ='P' THEN 'TB' --Combinada
WHEN TITC.COD_TITC ='M' THEN 'TM' --Múltiples tramos
WHEN TITC.COD_TITC ='N' THEN 'N' --Nuevas tarifas OR configuración
WHEN TITC.COD_TITC ='T' THEN
CASE
WHEN LCSV.IMPORTE_FIJO IS NOT NULL THEN 'AL' --Alternativo
ELSE 'AC' --aCUMULATIVO
END
ELSE 'F'
END COD_STTA,
DESCR_TARI,NOMBRE_UNTA AS NOMBRE_UNIDADES_TARI,
VALOR_TARIFA_FIJA AS VALOR_FIJA_TARI, 0 AS CUOTA_MINIMA_TARI,
TO_DATE('2000/01/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AS FECHA_DESDE_TARI, TO_DATE('2999/01/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AS FECHA_HASTA_TARI,COD_MCTA,
'N' AS ELIMINADO_TARI,ID_GRTR,99999999 AS CUOTA_MAXIMA_TARI,NULL AS COD_MCTA_CORREC,30 AS FECHA_PRES_LIQ_PROV_TARI,60 AS FECHA_PRES_LIQ_DEFS_TARI,
'EDU' AS COD_USUA_TARI,NULL AS FECHA_ACCION_TARI,NULL AS DOBLE_UNID_TARI,NULL AS APLICACION_TARI,NULL AS APLI_PRORRATEO_TARI,
NULL AS FORMULA_CALCULO_TARI,
ID_CORG, ID_CSUB, ID_CREC, ID_SCOR,
NOMBRE_PARA_SUBO_CSUB,
NOMBRE_PARA_SUBO_CREC
FROM XIMO_SCHM.EDU_TARIFAS_LUCA_CSV LCSV
LEFT JOIN OPS$GTTORA.TITC_TIPOS_TARIFAS_CONCEPTOS TITC ON TITC.DESCR_TITC =LCSV.DESCR_TITC
--LEFT JOIN STTA_SUBTIPOS_TARIFAS STTA ON STTA.COD_TITC =TITC.COD_TITC
-- AND STTA.COD_STTA = -----
LEFT JOIN OPS$GTTORA.UNTA_UNIDADES_TARIFA UNTA ON UNTA.ID_TARI =LCSV.ID_TARI
LEFT JOIN OPS$GTTORA.MCTA_MODO_CALCULO_TARIFA MCTA ON MCTA.DESCR_MCTA=LCSV.DESCR_MCTA
ORDER BY ID_TARI;
|TAXA PEL SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS |S |S | 48|IN | 5642|BA |FEM |SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS |S |N | 48|IN | 5667|PP |PÀRQUING PASSEIG |APARCAMENT DE VEHICLES EN EL PÀRQUIN SUBTERRANI MUNICIPAL DEL P. PAIS VALENCIA|S |N | 48|IN | 5539|BA |TASA BASURA TRIMESTRAL|TASA BASURA TRIMESTRAL |S |S | 48|IN | 5545|IR |IBI RÚSTICA |IMPUESTO SOBRE BIENES INMUEBLES DE NATURALEZA RÚSTICA |S |S | 48|IN | 5546|IU |IBI URBANA |IMPUESTO SOBRE BIENES INMUEBLES DE NATURALEZA URBANA |S |S | 48|IN | 5626|IR |IBI RÚSTIC |IMPOST SOBRE BÉNS IMMOBLES RÚSTICS |S |N | 48|IN | 5583|BA |TASA BASURA |TASA BASURA |S |S | 48|IN | 5625|IU |IBI URBANA |IMPOST SOBRE BÉNS IMMOBLES DE NATURALESA URBANA |S |N | 48|IN | 5633|BA |FEM |TAXA PEL SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS |S |S | 48|IN |
2.4 Tabla EDU_OT_LUCA
CREATE TABLE XIMO_SCHM.EDU_OT_LUCA(
ID_ORGA_OT NUMBER(10,0)
,NOMBRE_ORGA VARCHAR2(100)
,ID_PERS NUMBER(10,0)
,NIF_SUJETO_PAS VARCHAR2(10)
,NOMBRE_SUJETO_PAS VARCHAR2(100)
,NIF_CONTRIBUYENTE VARCHAR2(10)
,NOMBRE_CONTRIBUYENTE VARCHAR2(100)
,DIRECCION_CONTRIBUYENTE VARCHAR2(200)
,ID_EPER_OT NUMBER(10,0)
,ID_DOTP NUMBER(10,0)
,ESTADO VARCHAR2(25)
,TIPO_BAJA VARCHAR2(100)
,TIPO_OT VARCHAR2(5)
,COD_CONC VARCHAR2(5)
,CONCEPTO VARCHAR2(100)
,SUBCONCEPTO VARCHAR2(100)
,TARIFA VARCHAR2(100)
,ID_SUBO NUMBER(10,0)
,NOMBRE_SUBO VARCHAR2(100)
,NUMERO_FIJO_TASA VARCHAR2(100)
,ORDEN VARCHAR2(30)
,DIRECCIÓN_OT_CODIFICADA VARCHAR2(150)
,ORIGEN_VIA VARCHAR2(50)
,COD_VIA_OT NUMBER(10,0)
,SIGLA_OT VARCHAR2(10)
,NOMBRE_CALLE_OT VARCHAR2(100)
,NUMERO_OT NUMBER(10,0)
,BLOQUE_OT VARCHAR2(30)
,ESCALERA_OT VARCHAR2(30)
,PLANTA_OT VARCHAR2(30)
,PUERTA_OT VARCHAR2(30)
,CP_OT NUMBER(10,0)
,DESCRIPCION_OT VARCHAR2(100)
,REF_CATASTRAL_ASOCIADA VARCHAR2(30)
,FECHA_INC_PADRON_DOTP DATE
,SUBCONCEPTOS NUMBER(10,0)
,TARIFAS NUMBER(10,0)
,BONIFICACIONES NUMBER(10,0)
,IBAN VARCHAR2(30)
) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IX_EDU_OT_LUCA_ID_EPER_OT ON XIMO_SCHM.EDU_OT_LUCA ("ID_EPER_OT") TABLESPACE XIMO_SCHM_TABLESPACE;
COMMENT ON TABLE XIMO_SCHM.EDU_OT_LUCA IS 'OBJETOS TRIBUTARIOS OBTENIDOS POR LUCA PARA HACER COMPROBACIONES';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_ORGA_OT IS 'ID ORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_ORGA IS 'NOMBRE ORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_PERS IS 'ID DE LA PERSONA';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NIF_SUJETO_PAS IS 'NIF SUJETO PASIVO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_SUJETO_PAS IS 'NOMBRE SUJETO PASIVO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NIF_CONTRIBUYENTE IS 'NIF CONTRIBUYENTE';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_CONTRIBUYENTE IS 'NOMBRE CONTRIBUYENTE';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DIRECCION_CONTRIBUYENTE IS 'DIRECCION CONTRIBUYENTE';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_EPER_OT IS 'IDENTIFICADOR DEL OBJETO TRIBUTARIO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_DOTP IS 'ID DOTP OTROS DATOS DE TASAS';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ESTADO IS 'ESTADO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TIPO_BAJA IS 'TIPO DE BAJA';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TIPO_OT IS 'TIPO DE OBJETO TRIBUTARIO (TP)';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.COD_CONC IS 'CODIGO CONCEPTO (GU, BA,..)';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.CONCEPTO IS 'CONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SUBCONCEPTO IS 'SUBCONCEPTO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TARIFA IS 'NOMBRE DE LA TARIFA';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_SUBO IS 'ID SUBORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_SUBO IS 'NOMBRE SUBORGANISMO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NUMERO_FIJO_TASA IS 'NUMERO FIJO';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ORDEN IS 'ORDEN DEL SUBCONCEPTO (SOLO PARA EL CASO QUE SE TENGAN VARIOS SUBCONCPTOS EN LA MISMA LIQUIDACION)';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DIRECCIÓN_OT_CODIFICADA IS 'DIRECCION OT CODIFICADA';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ORIGEN_VIA IS 'ORIGEN';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.COD_VIA_OT IS 'CODIGO VIA OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SIGLA_OT IS 'SIGLA VIA OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_CALLE_OT IS 'CALLE OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NUMERO_OT IS 'NUM OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.BLOQUE_OT IS 'BLOQUE OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ESCALERA_OT IS 'ESCALERA OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.PLANTA_OT IS 'PLANTA OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.PUERTA_OT IS 'PUERTA OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.CP_OT IS 'CP OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DESCRIPCION_OT IS 'DESCRIPCION OT';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.REF_CATASTRAL_ASOCIADA IS 'REFERENCIA CATASTRAL';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.FECHA_INC_PADRON_DOTP IS 'FECHA INCLUSION EN EL PADRON';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SUBCONCEPTOS IS 'NUMERO DE SUBCONCEPTOS QUE CONTIENE';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TARIFAS IS 'NUMERO DE TARIFAS QUE CONTIENE';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.BONIFICACIONES IS 'BONIFICACIONES';
COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.IBAN IS 'IBAN DOMICILIACION';
3. Vista que engloba tanto a valores temporales (VATE) como "permanentes"(VALO). Se verá en un blog posterior
CREATE OR REPLACE VIEW XIMO_SCHM.XIMO_VALORS
AS
SELECT VATE.IDENTIFICADOR_VATE,
LPAD(VALO.ANYO_CARGO_CARG,4,'0')||LPAD(VALO.ID_ORGA ,2,'0') ||
LPAD(VALO.ID_SUBO,5,'0') || VALO.COD_CONC || LPAD(VALO.EMISION_CARG,2,'0') ||
VALO.COD_TVAL || LPAD(VALO.NUMERO_VALO,6,'0') AS IDENTIFICADOR_VALO,
VATE.ID_EPER,
VALO.ID_EPER AS ID_EPER_VALOR ,
--TPDL.ID_TPDL,
OTPT.ID_OTPD,
OT.ID_EPER_OT,
EPER.ID_PERS,
PERS.NIF_PERG, PERS.NOMBRE_PERG,
NVL(VATE.COD_TVAL,VALO.COD_TVAL) AS COD_TVAL,
NVL(VATE.COD_CONC,VALO.COD_CONC) AS COD_CONC,
VATE.TIPO_VATE,
VATE.ESTADO_VATE,
TESV.*,
TSEV.*,
TFVA.*,
SVAL.DESCR_SVAL,
VATE.COD_USUA,
NVL(VATE.FECHA_GRABACION_VATE,
NVL(VALO.FECHA_CARGA_VALO,
TO_DATE(TO_CHAR(NVL(VATE.EJERCICIO_VATE,2000))||'-01-01','YYYY-MM-DD'))) AS FECHA_GRABACION_VATE,
VATE.PERIODO_VATE,
VALO.ANYO_CARGO_CARG, VALO.EMISION_CARG, VALO.NUMERO_VALO,
VALO.ID_CARG, VALO.NUMERO_CARG,
NVL(VATE.OBJETO_TRIB_VATE,VALO.OBJETO_TRIB_VALO) AS OBJETO_TRIB_VATE,
NVL(VATE.DEUDA_VATE,VALO.IMPORTE_VALO) AS IMPORTE,
VATE.ID_EPER_ORIG_VATE,
NVL(VATE.NUM_EXP_LID_VATE, VALO.NUM_EXP_LID_VALO) AS NUM_EXP_LID_VATE,
NVL(VATE.ID_CSUB,VALO.ID_CSUB) AS ID_CSUB,
CSUB.NOMBRE_PARA_SUBO_CSUB,
VALO.ID_REGE
--SELECT COUNT(*)
FROM OPS$GTTORA.VATE_VALORES_TEMPORALES VATE -- NUM_EXP_LID_VATE, ID_EPER_ORIG_VATE-> ID_TPDL??, IDENTIFIADOR_VATE, ID_EPER_VALO-> VALO.ID_EPER,COPD_CONC,
FULL OUTER JOIN OPS$GTTORA.VALO_VALORES VALO ON VALO.ID_EPER=VATE.ID_EPER_VALOR -- ID_CARG, NUMERO_VALO!!!
--LEFT JOIN "OPS$GTTORA".TPDL_TP_DETALLE_LIQUIDACION TPDL ON TPDL.ID_TPDL =VATE.ID_EPER_ORIG_VATE
LEFT JOIN OPS$GTTORA.OTPT_OBJETOS_TRIB_PREV_VOLU OTPT ON OTPT.ID_OTPT = VATE.ID_EPER_ORIG_VATELEFT JOIN OPS$GTTORA.OT_OBJETO_TRIBUTARIO OT ON OT.ID_EPER_OT =VATE.ID_EPER_ORIG_VATE
LEFT JOIN OPS$GTTORA.EPER_ELEMENTOS_PERSONA EPER ON EPER.ID_EPER = GREATEST (NVL(VATE.ID_EPER,-1), NVL(VALO.ID_EPER,-1))
LEFT JOIN OPS$GTTORA.CSUB_CONCEPTOS_SUBORGANISMO CSUB ON CSUB.ID_CSUB = GREATEST (NVL(VATE.ID_CSUB,-1), NVL(VALO.ID_CSUB ,-1))
LEFT JOIN OPS$GTTORA.PERS_PERSONAS pers ON pers.ID_PERS =EPER.ID_PERS
LEFT JOIN OPS$GTTORA.TESV_TIPOS_ESTADO_VALOR TESV ON TESV.COD_TESV =VALO.COD_TESV
LEFT JOIN OPS$GTTORA.TSEV_TSUBE_VALOR TSEV ON TSEV.COD_TSEV =VALO.COD_TSEV
LEFT JOIN OPS$GTTORA.TFVA_TIPOS_FORMATO_VALOR TFVA ON TFVA.COD_TFVA =VALO.COD_TFVA
LEFT JOIN OPS$GTTORA.SVAL_SUBTIPO_VALORES SVAL ON SVAL.COD_SVAL =VALO.COD_SVAL
;
4. Tabla de las personas incluso en un agrupación
Esta tabla muestra las personas y los distintos ID_PERS que haya tomado esta persona. El problema surge cuando se elimina el registro de la tabla PERS y se da de alta en la tabla AGP, por tanto hay que consultar las 2 tablas en busca de la persona.
Pero sale el error:SQL Error [1950] [42000]: ORA-01950: No existen privilegios en el tablespace USERS, seguramente es porque no hemos seleccionados el TABLESPACE XIMO_SCHM_TABLESPACE
CREATE TABLE XIMO_SCHM.PERS_XIMO TABLESPACE XIMO_SCHM_TABLESPACE
AS
(
SELECT DISTINCT NVL(AGPE.ID_PERS_AGPE,PERS.ID_PERS) AS ID_PERS_XIMO,
PERS.ID_PERS,PERS.NIF_PERG, PERS.NOMBRE_PERG
FROM OPS$GTTORA.PERS_PERSONAS PERS
LEFT JOIN
(
OPS$GTTORA.EPER_ELEMENTOS_PERSONA EPER
JOIN OPS$GTTORA.AGPE_AGRUPACIONES_PERSONAS AGPE ON EPER.TIPO_EPER ='AG' AND AGPE.ID_EPER = EPER.ID_EPER
)
ON EPER.ID_PERS IN (PERS.ID_PERS)
) ;
-- INDEXES ------
CREATE UNIQUE INDEX XIMO_SCHM.IDX_PERS_XIMO_1 ON XIMO_SCHM.PERS_XIMO (ID_PERS_XIMO) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_2 ON XIMO_SCHM.PERS_XIMO (ID_PERS) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_3 ON XIMO_SCHM.PERS_XIMO (NIF_PERG) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_4 ON XIMO_SCHM.PERS_XIMO (NOMBRE_PERG)TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE TABLE XIMO_SCHM.PERS_XIMO TABLESPACE XIMO_SCHM_TABLESPACE
AS
(
SELECT DISTINCT NVL(AGPE.ID_PERS_AGPE,PERS.ID_PERS) AS ID_PERS_XIMO,
PERS.ID_PERS,PERS.NIF_PERG, PERS.NOMBRE_PERG
FROM OPS$GTTORA.PERS_PERSONAS PERS
LEFT JOIN
(
OPS$GTTORA.EPER_ELEMENTOS_PERSONA EPER
JOIN OPS$GTTORA.AGPE_AGRUPACIONES_PERSONAS AGPE ON EPER.TIPO_EPER ='AG' AND AGPE.ID_EPER = EPER.ID_EPER
)
ON EPER.ID_PERS IN (PERS.ID_PERS)
) ;
-- INDEXES ------
CREATE UNIQUE INDEX XIMO_SCHM.IDX_PERS_XIMO_1 ON XIMO_SCHM.PERS_XIMO (ID_PERS_XIMO) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_2 ON XIMO_SCHM.PERS_XIMO (ID_PERS) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_3 ON XIMO_SCHM.PERS_XIMO (NIF_PERG) TABLESPACE XIMO_SCHM_TABLESPACE;
CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_4 ON XIMO_SCHM.PERS_XIMO (NOMBRE_PERG)TABLESPACE XIMO_SCHM_TABLESPACE;
5. Tabla EDU_BUCLE
CREATE TABLE XIMO_SCHM.EDU_BUCLE(
ID_BUCLE NUMBER(10,0),
DESCR VARCHAR(10)
) TABLESPACE XIMO_SCHM_TABLESPACE;
---incluimos valores
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (0, 'PRINCIPAL');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (1, 'RECARGO');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (2, 'INTERESES');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (3, 'COSTAS');
CREATE TABLE XIMO_SCHM.EDU_BUCLE(
ID_BUCLE NUMBER(10,0),
DESCR VARCHAR(10)
) TABLESPACE XIMO_SCHM_TABLESPACE;
---incluimos valores
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (0, 'PRINCIPAL');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (1, 'RECARGO');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (2, 'INTERESES');
INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (3, 'COSTAS');