Columnas
Restricciones
Permisos
Estad韘ticas
Disparadores
Dependencias
Detalles
Particiones
蚽dices
Columnas
Restricciones
Permisos
Estad韘ticas
Disparadores
Dependencias
Detalles
Particiones
蚽dices
COLUMN_NAME | DATA_TYPE | NULLABLE | DATA_DEFAULT | COLUMN_ID | COMMENTS |
---|---|---|---|---|---|
CLIENTEID | NUMBER | No | null | 1 | null |
ISINID | CHAR(12 BYTE) | No | null | 2 | null |
VALORCOTIZACIONULT | NUMBER | No | null | 3 | null |
FECHACOTIZACIONULT | DATE | No | null | 4 | null |
IMPORTE | NUMBER | No | null | 5 | null |
CANTIDAD | NUMBER | No | null | 6 | null |
CANTIDADPENDIENTEVENTA | NUMBER | No | null | 7 | null |
CONSTRAINT_NAME | CONSTRAINT_TYPE | SEARCH_CONDITION | R_OWNER | R_TABLE_NAME | R_CONSTRAINT_NAME | DELETE_RULE | STATUS | DEFERRABLE | VALIDATED | GENERATED | BAD | RELY | LAST_CHANGE | INDEX_OWNER | INDEX_NAME | INVALID | VIEW_RELATED |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SITUACIONCARTERA_PK | Primary_Key | null | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | USER NAME | null | null | 11/06/15 | null | SITUACIONCARTERA_PK | null | null |
SYS_C0022795 | Check | "CLIENTEID" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022796 | Check | "ISINID" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022797 | Check | "VALORCOTIZACIONULT" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022798 | Check | "FECHACOTIZACIONULT" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022799 | Check | "IMPORTE" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022800 | Check | "CANTIDAD" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
SYS_C0022801 | Check | "CANTIDADPENDIENTEVENTA" IS NOT NULL | null | null | null | null | ENABLED | NOT DEFERRABLE | VALIDATED | GENERATED NAME | null | null | 11/06/15 | null | null | null | null |
Columnas
COLUMN_NAME | COLUMN_POSITION |
---|---|
CLIENTEID | 1 |
ISINID | 2 |
COLUMN_NAME | COLUMN_POSITION |
---|---|
CLIENTEID | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
ISINID | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
VALORCOTIZACIONULT | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
FECHACOTIZACIONULT | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
IMPORTE | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
CANTIDAD | null |
COLUMN_NAME | COLUMN_POSITION |
---|---|
CANTIDADPENDIENTEVENTA | null |
PRIVILEGE | GRANTEE | GRANTABLE | GRANTOR | OBJECT_NAME |
---|
NAME | VALUE |
---|---|
NUM_ROWS | null |
BLOCKS | null |
AVG_ROW_LEN | null |
SAMPLE_SIZE | null |
LAST_ANALYZED | null |
LAST_ANALYZED_SINCE | null |
Estad韘ticas de Columna
TRIGGER_NAME | TRIGGER_TYPE | TRIGGER_OWNER | TRIGGERING_EVENT | STATUS | TABLE_NAME |
---|---|---|---|---|---|
UPDSITUACIONCARTERA | AFTER EACH ROW | CARTERAINVERSION_USER | UPDATE | ENABLED | SITUACIONCARTERA |
TRIGGER UPDSITUACIONCARTERA AFTER UPDATE ON SITUACIONCARTERA FOR EACH ROW DECLARE valor NUMBER; valorMes NUMBER; vANO NUMBER; vMes NUMBER; vANOAnterior NUMBER; vMesAnterior NUMBER; existe NUMBER; vClienteId NUMBER; vNombre VARCHAR2(150); vValorCarteraInversiones NUMBER; newValorCarteraInversiones NUMBER; oldValorCarteraInversiones NUMBER; vISINId CHAR(12); vTicker VARCHAR2(10); vTickerDescripcion VARCHAR2(100); vVolumenNegociacion NUMBER; RSP VARCHAR2(50); BEGIN /* Se actualiza el valor cartera inversiones de la tabla cliente con el diferencial - entre el diferencial de la cantidad anterior y la nueva cantidad. - entre el valor de cotizaci贸n anterior y el nuevo valor */ newValorCarteraInversiones := 0; oldValorCarteraInversiones := 0; IF((:new.cantidad <> :old.cantidad ) OR (:new.ValorCotizacionUlt <> :old.ValorCotizacionUlt)) THEN SELECT ValorCarteraInversiones INTO oldValorCarteraInversiones FROM Cliente WHERE ClienteId = :new.ClienteId; valor := (:new.cantidad * :new.ValorCotizacionUlt)- (:old.cantidad * :old.ValorCotizacionUlt) ; update Cliente set ValorCarteraInversiones = ValorCarteraInversiones+valor where ClienteId = :new.ClienteId; SELECT ValorCarteraInversiones INTO newValorCarteraInversiones FROM Cliente WHERE ClienteId = :new.ClienteId; SELECT ValorCarteraInversiones, ClienteId, Nombre INTO vValorCarteraInversiones, vClienteId, vNombre FROM (SELECT ValorCarteraInversiones, ClienteId, Nombre FROM Cliente ORDER BY ValorCarteraInversiones DESC) WHERE ROWNUM = 1; /* La operaci贸n UPSERT actualiza o inserta una fila en una tabla, dependiendo de si la tabla ya tiene una fila que coincide con los datos. Ya que Oracle no tiene una declaraci贸n espec铆fica de UPSERT, utilizaremos la declaraci贸n "merge" que fusiona los datos entre dos tablas. Uso DUAL nos permite utilizar este comando. */ merge into Est_3_MayorCarteraCliente m using dual on (Id = 1) when not matched then insert (Id,ClienteId, Nombre, ValorCarteraInversiones) values (1, vClienteId, vNombre, vValorCarteraInversiones) when matched then update set ClienteId = vClienteId, Nombre = vNombre, ValorCarteraInversiones = vValorCarteraInversiones; END IF ; /* Se actualiza el volumen de negociaci贸n de la acci贸n. Se tiene en cuenta el diferencial de la cantidad anterior respecto a la nueva cantidad en valor absoluto.*/ IF (:new.cantidad <> :old.cantidad ) THEN valor := ABS((:new.cantidad )- (:old.cantidad )) ; update Accion set VolumenNegociacion = VolumenNegociacion+valor where ISINId = :new.ISINId; SELECT ISINId,Ticker, VolumenNegociacion, TickerDescripcion INTO vISINId, vTicker, vVolumenNegociacion, vTickerDescripcion FROM (SELECT ISINId,Ticker, VolumenNegociacion, TickerDescripcion FROM Accion ORDER BY VOLUMENNEGOCIACION DESC) WHERE ROWNUM = 1; /* La operaci贸n UPSERT actualiza o inserta una fila en una tabla, dependiendo de si la tabla ya tiene una fila que coincide con los datos. Ya que Oracle no tiene una declaraci贸n espec铆fica de UPSERT, utilizaremos la declaraci脙鲁n "merge" que fusiona los datos entre dos tablas. Uso DUAL nos permite utilizar este comando. */ merge into Est_4_MayorVolumenAccion m using dual on (Id = 1) when not matched then insert (Id,ISINId, Ticker, VolumenNegociacion, TickerDescripcion) values (1, vISINId, vTicker, vVolumenNegociacion, vTickerDescripcion) when matched then update set ISINId = vISINId, Ticker = vTicker, VolumenNegociacion = vVolumenNegociacion, TickerDescripcion = vTickerDescripcion; END IF ; /* Se actualiza la cantidad pendiente de venta de la acci贸n. Se tiene en cuenta el diferencial de la cantidad pendiente anterior respecto a la nueva cantidad pendiente. */ IF (:new.CantidadPendienteVenta <> :old.CantidadPendienteVenta ) THEN valor := (:new.CantidadPendienteVenta )- (:old.CantidadPendienteVenta ) ; update Accion set NumeroAccionesDisponibles = NumeroAccionesDisponibles + valor where ISINId = :new.ISINId; END IF ; /* Si se produce un cambio de mes se generara ClienteHistorico */ IF (:new.FechaCotizacionUlt <> :old.FechaCotizacionUlt ) THEN vANO := EXTRACT(YEAR FROM :new.FechaCotizacionUlt); vMes := EXTRACT(MONTH FROM :new.FechaCotizacionUlt); SELECT count(*) INTO existe FROM ClienteHistorico WHERE ClienteId = :new.ClienteId; IF (existe = 0) THEN /* La primera vez se carga los dos valores iguales */ oldValorCarteraInversiones:= newValorCarteraInversiones; END IF; SELECT count(*) INTO existe FROM ClienteHistorico WHERE ANO = vANO AND Mes = vMes AND ClienteId = :new.ClienteId; IF (existe = 0) THEN /* se genera el nuevo registro del mes */ /* miramos que exista el mes anterior */ vANOAnterior := vANO; vMesAnterior := vmes -1; IF (vMesAnterior = 0) THEN vMesAnterior := 12; vANOAnterior := vANO - 1; END IF; SELECT count(*) INTO existe FROM ClienteHistorico WHERE ANO = vANOAnterior AND Mes = vMesAnterior AND ClienteId = :new.ClienteId ; IF (existe > 0) THEN /* Si existe recogemos el valor final del mes anterior */ SELECT IMPORTEFINAL INTO valorMes FROM ClienteHistorico WHERE ANO = vANOAnterior AND Mes = vMesAnterior AND ClienteId = :new.ClienteId ; oldValorCarteraInversiones:= valorMes; END IF; /* En este punto oldValorCarteraInversiones tendra el valor de newValorCarteraInversiones si es la primera vez que se carga este cliente o bien tendra el valor ImporteFinal del mes anterior. */ GestionTest.ins_ClienteHistorico(:new.ClienteId, vMes, vANO, oldValorCarteraInversiones, newValorCarteraInversiones, RSP ); ELSE /* Durante el mes se actualiza el valor en ImporteFinal*/ SELECT IMPORTEINICIAL INTO valorMes FROM ClienteHistorico WHERE ANO = vANO AND Mes = vMes AND ClienteId = :new.ClienteId ; GestionTest.upd_ClienteHistorico(:new.ClienteId, vMes, vANO, valorMes, newValorCarteraInversiones, RSP ); END IF; END IF; END;
OWNER | NAME | TYPE | REFERENCED_OWNER | REFERENCED_NAME | REFERENCED_TYPE |
---|---|---|---|---|---|
CARTERAINVERSION_USER | GESTIONTEST | PACKAGE BODY | CARTERAINVERSION_USER | SITUACIONCARTERA | TABLE |
CARTERAINVERSION_USER | UPDSITUACIONCARTERA | TRIGGER | CARTERAINVERSION_USER | SITUACIONCARTERA | TABLE |
CARTERAINVERSION_USER | INSACCIONHISTORICO | TRIGGER | CARTERAINVERSION_USER | SITUACIONCARTERA | TABLE |
Referencias
OWNER | NAME | TYPE | REFERENCED_OWNER | REFERENCED_NAME | REFERENCED_TYPE |
---|
OWNER | NAME | TYPE | REFERENCED_OWNER | REFERENCED_NAME | REFERENCED_TYPE |
---|
OWNER | NAME | TYPE | REFERENCED_OWNER | REFERENCED_NAME | REFERENCED_TYPE |
---|
NAME | VALUE |
---|---|
CREATED | 11/06/15 |
LAST_DDL_TIME | 11/06/15 |
OWNER | CARTERAINVERSION_USER |
TABLE_NAME | SITUACIONCARTERA |
TABLESPACE_NAME | CARTERAINVERSION |
CLUSTER_NAME | null |
IOT_NAME | null |
STATUS | VALID |
PCT_FREE | 10 |
PCT_USED | null |
INI_TRANS | 1 |
MAX_TRANS | 255 |
INITIAL_EXTENT | 65536 |
NEXT_EXTENT | 1048576 |
MIN_EXTENTS | 1 |
MAX_EXTENTS | 2147483645 |
PCT_INCREASE | null |
FREELISTS | null |
FREELIST_GROUPS | null |
LOGGING | YES |
BACKED_UP | N |
NUM_ROWS | null |
BLOCKS | null |
EMPTY_BLOCKS | null |
AVG_SPACE | null |
CHAIN_CNT | null |
AVG_ROW_LEN | null |
AVG_SPACE_FREELIST_BLOCKS | null |
NUM_FREELIST_BLOCKS | null |
DEGREE | 1 |
INSTANCES | 1 |
CACHE | N |
TABLE_LOCK | ENABLED |
SAMPLE_SIZE | null |
LAST_ANALYZED | null |
PARTITIONED | NO |
IOT_TYPE | null |
OBJECT_ID_TYPE | null |
TABLE_TYPE_OWNER | null |
TABLE_TYPE | null |
TEMPORARY | N |
SECONDARY | N |
NESTED | NO |
BUFFER_POOL | DEFAULT |
ROW_MOVEMENT | DISABLED |
GLOBAL_STATS | NO |
USER_STATS | NO |
DURATION | null |
SKIP_CORRUPT | DISABLED |
MONITORING | YES |
CLUSTER_OWNER | null |
DEPENDENCIES | DISABLED |
COMPRESSION | DISABLED |
COMPRESS_FOR | null |
DROPPED | NO |
COMMENTS | null |
PARTITION_NAME | LAST_ANALYZED | NUM_ROWS | BLOCKS | SAMPLE_SIZE | HIGH_VALUE |
---|
INDEX_OWNER | INDEX_NAME | UNIQUENESS | STATUS | INDEX_TYPE | TEMPORARY | PARTITIONED | FUNCIDX_STATUS | JOIN_INDEX | COLUMNS | COLUMN_EXPRESSION |
---|---|---|---|---|---|---|---|---|---|---|
CARTERAINVERSION_USER | SITUACIONCARTERA_PK | UNIQUE | VALID | NORMAL | N | NO | null | NO | CLIENTEID, ISINID | null |
INDEX_OWNER | INDEX_NAME | TABLE_OWNER | TABLE_NAME | COLUMN_NAME | COLUMN_POSITION | COLUMN_LENGTH | CHAR_LENGTH | DESCEND |
---|---|---|---|---|---|---|---|---|
CARTERAINVERSION_USER | SITUACIONCARTERA_PK | CARTERAINVERSION_USER | SITUACIONCARTERA | CLIENTEID | 1 | 22 | 0 | ASC |
CARTERAINVERSION_USER | SITUACIONCARTERA_PK | CARTERAINVERSION_USER | SITUACIONCARTERA | ISINID | 2 | 12 | 12 | ASC |