/* @info_TABLA.sql version 1.1 Santiago Velilla 19 Mayo 2014 Dpto. Informática e Ingeniería de Sistemas, Universidad Zaragoza Este script muestra información básica de la tabla cuyo nombre se especifica a través del parámetro del script (&1) uso: @info_TABLA nombre_tabla */ -- SET ECHO ON set linesize 132 set pagesize 200 -- modificar el ancho para columnas de tipo LONG (p.e. el cuerpo de un trigger) SET LONG 255 column NOMBRE format A18 column OWNER format A12 column CONSTRAINT_NAME format A20 column TABLE_NAME format A16 column SEARCH_CONDITION format A24 column COLUMN_NAME format A16 column POSITION format 99 DEFINE tabla = '&1' -------------------------------------------------------------------- /* la tabla del diccionario USER_CONS_COLUMNS tiene los siguientes atributos: OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION y especifica los atributos que intervienen en la restricciones definidas por el usuario e identificadas por (OWNER, CONSTRAINT_NAME, TABLE_NAME) ALL_CONS_COLUMNS es similar, pero para las restricciones accesibles al usuario */ -- describe USER_CONS_COLUMNS -- describe ALL_CONS_COLUMNS -- SELECT * FROM USER_CONS_COLUMNS WHERE table_name = UPPER('&tabla'); /* la tabla del diccionario USER_CONSTRAINTS contiene las restricciones definidas por el usuario. Tiene, entre otros, los siguientes atributos: OWNER, CONSTRAINT_NAME y TABLE_NAME que identifican la restricción CONSTRAINT_TYPE, SEARCH_CONDITION que especifican la restricción CONSTRAINT_TYPE VARCHAR2(1) Type of constraint definition: C (check constraint on a table) P (primary key) U (unique key) R (referential integrity) V (with check option, on a view) O (with read only, on a view) ALL_CONSTRAINTS es similar, pero para las restricciones accesibles al usuario */ -- describe USER_CONSTRAINTS -- describe ALL_CONSTRAINTS -- SELECT table_name, constraint_name, constraint_type, search_condition -- FROM user_constraints WHERE table_name = UPPER('&tabla'); PROMPT PROMPT atributos de la tabla &tabla describe &tabla PROMPT PROMPT restricciones definidas sobre la tabla &tabla SELECT b.OWNER, a.TABLE_NAME, a.CONSTRAINT_NAME, a.CONSTRAINT_TYPE, COLUMN_NAME, POSITION, SEARCH_CONDITION FROM USER_CONSTRAINTS a, USER_CONS_COLUMNS b WHERE (b.CONSTRAINT_NAME = a.CONSTRAINT_NAME) AND (a.TABLE_NAME = UPPER('&tabla')); -- especificar formato de las columnas a mostrar column TRIGGER_NAME format a24 column TRIGGERING_EVENT format a30 column TABLE_OWNER format a12 column COLUMN_NAME format a14 column REFERENCING_NAMES format a40 column WHEN_CLAUSE format a20 column DESCRIPTION format a55 column TRIGGER_BODY format a85 PROMPT PROMPT información básica de los disparadores definidos sobre la tabla &tabla PROMPT -- mostrar todos los disparadores asociados a la tabla, su estado y descripción SELECT TRIGGER_NAME, TABLE_OWNER, STATUS, DESCRIPTION FROM USER_TRIGGERS WHERE TABLE_NAME = UPPER('&tabla'); -- mostrar todos los disparadores asociados a la tabla con su tipo, evento y cláusula when SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, WHEN_CLAUSE FROM USER_TRIGGERS WHERE TABLE_NAME = UPPER('&tabla'); -- mostrar el programa definido para los disparadores asociados a la tabla SELECT TRIGGER_NAME, TRIGGER_BODY FROM USER_TRIGGERS WHERE TABLE_NAME = UPPER('&tabla');