DECLARE
l_col_count NUMBER;
l_col_descs dbms_sql.desc_tab;
l_cursor NUMBER;
l_statement VARCHAR2(50);
l_table_name VARCHAR2(50);
BEGIN
-- Definimos el nombre de la tabla
l_table_name := 'scott.bonus';
-- Costruimos la select
l_statement := 'select * from ' || l_table_name;
--
-- Abrimos un nuevo cursor
l_cursor := dbms_sql.open_cursor;
--
-- Parse the SQL statement
dbms_sql.parse( c => l_cursor
, statement => l_statement
, language_flag => dbms_sql.native
);
--
-- Obtenemos los nombres de las columnas
dbms_sql.describe_columns( c => l_cursor
, col_cnt => l_col_count
, desc_t => l_col_descs
);
--
-- Pasamos a imprimir la salida
dbms_output.put_line( 'Description of table '
|| l_table_name
|| ':'
) ;
--
-- Mostramos los nombre de las columnas
FOR i in 1..l_col_count
LOOP
dbms_output.put_line( 'column '
|| to_char(i)
|| ': name='
|| l_col_descs(i).col_name
);
END LOOP;
END;
l_col_count NUMBER;
l_col_descs dbms_sql.desc_tab;
l_cursor NUMBER;
l_statement VARCHAR2(50);
l_table_name VARCHAR2(50);
BEGIN
-- Definimos el nombre de la tabla
l_table_name := 'scott.bonus';
-- Costruimos la select
l_statement := 'select * from ' || l_table_name;
--
-- Abrimos un nuevo cursor
l_cursor := dbms_sql.open_cursor;
--
-- Parse the SQL statement
dbms_sql.parse( c => l_cursor
, statement => l_statement
, language_flag => dbms_sql.native
);
--
-- Obtenemos los nombres de las columnas
dbms_sql.describe_columns( c => l_cursor
, col_cnt => l_col_count
, desc_t => l_col_descs
);
--
-- Pasamos a imprimir la salida
dbms_output.put_line( 'Description of table '
|| l_table_name
|| ':'
) ;
--
-- Mostramos los nombre de las columnas
FOR i in 1..l_col_count
LOOP
dbms_output.put_line( 'column '
|| to_char(i)
|| ': name='
|| l_col_descs(i).col_name
);
END LOOP;
END;
Salida:
Description of table scott.bonus:
column 1: name=ENAME
column 2: name=JOB
column 3: name=SAL
column 4: name=COMM
column 1: name=ENAME
column 2: name=JOB
column 3: name=SAL
column 4: name=COMM
No hay comentarios:
Publicar un comentario