【发布时间】:2018-10-23 11:03:39
【问题描述】:
我有一个将表作为参数的程序,我必须将该表中的所有详细信息(如列名、类型和约束)写入 sql 文件。这是我尝试过的(这是一个测试代码,只是为了了解如何打印所有信息):
v_cursor_id := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(v_cursor_id , 'SELECT * FROM marks', DBMS_SQL.NATIVE);
v_ok := DBMS_SQL.EXECUTE(v_cursor_id );
DBMS_SQL.DESCRIBE_COLUMNS(v_cursor_id, v_total_coloane, v_rec_tab);
v_nr_col := v_rec_tab.first;
IF (v_nr_col IS NOT NULL) THEN
LOOP
DBMS_OUTPUT.PUT(v_rec_tab(v_nr_col).col_name);
DBMS_OUTPUT.PUT(' ');
v_tipColoana :=(v_rec_tab(v_nr_col).col_type);
case v_tipColoana
when 1 then DBMS_OUTPUT.PUT('varchar2');
when 2 then DBMS_OUTPUT.PUT('Number');
when 12 then DBMS_OUTPUT.PUT('date');
when 96 then DBMS_OUTPUT.PUT('CHAR');
end case;
EXIT WHEN (v_nr_col IS NULL);
END LOOP;
END IF;
DBMS_SQL.CLOSE_CURSOR(v_cursor_id);
【问题讨论】: