17,140
社区成员




select 1 abc, '2a' aBbc, to_char(3) "aBc", 'A' from dual union all
select 3, '4', '5', '' from dual
DECLARE
l_curid INTEGER;
l_cnt NUMBER;
l_desctab dbms_sql.desc_tab;
l_sqltext VARCHAR2(2000);
BEGIN
l_sqltext := 'select *
from dba_objects where rownum<= 10'; --可以是任意有效的查询sql文本
l_curid := dbms_sql.open_cursor();
dbms_sql.parse(l_curid, l_sqltext, dbms_sql.native);
dbms_sql.describe_columns(l_curid, l_cnt, l_desctab);
FOR i IN 1 .. l_desctab.count LOOP
dbms_output.put_line(rpad(l_desctab(i).col_name, 30)||rpad(l_desctab(i).col_type, 3));
END LOOP;
dbms_sql.close_cursor(l_curid);
END;