DESC[RIBE]
Sirve para obtener una descripción de una tabla, sinonimo, paquete o función.
Debido a que es un comando de sqlplus no necesita terminar con ;
DESC table
DESC view
DESC synonym
DESC function
DESC package
En Oracle 7 se pueden describir funciones indivuales de un paquete.
desc DBMS_UTILITY.GET_PARAMETER_VALUE
A partir de oracle 8 solo podemos describir paquetes completos.
Es posible describir objetos en otro esquema via dblink.
DESCRIBE user.table@db_link
El comando describe puede funcionar de forma recursiva hasta el nivel de profundidad definido con:
SET LINESIZE 80
SET DESCRIBE DEPTH 2
SET DESCRIBE INDENT ON
SET DESCRIBE LINE OFF
Para mostrar esta configuración, ejecutar: SHOW DESCRIBE
Una alternativa a al comando DESC es usae el diccionario de datos.
DESC MY_TABLE es equivalente a:
SELECT
column_name "Name",
nullable "Null?",
concat(concat(concat(data_type,'('),data_length),')') "Type"
FROM user_tab_columns
WHERE table_name='TABLE_NAME_TO_DESCRIBE';
Column Comments
Para ver los comentarios de las columnas:
SELECT comments
FROM user_col_comments
WHERE table_name='MY_TABLE';
o tambien
SELECT 'comment on column '||table_name||'.'||column_name||' is '''||comments||''';'
FROM user_col_comments
WHERE comments is not null;
Podemos escribir nuestro propio comando describe, creamos el fichero col.sql:
-- Lista todas la columnas de una tabla
select chr(9)||lower(column_name)||','
from USER_tab_columns
where table_Name = UPPER('&1');
Si queremos una lista de las columnas de EMP, escribimos:
Produce una lista de columnas:
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno,