254:
255: FUNCTION GET_COLUMN_NAMES(sql_query VARCHAR2) RETURN JTF_VARCHAR2_TABLE_4000
256: IS
257: cursor_id number;
258: columns_describe dbms_sql.desc_tab;
259: column_count number;
260: loop_counter number;
261: column_headers JTF_VARCHAR2_TABLE_4000;
262: BEGIN
260: loop_counter number;
261: column_headers JTF_VARCHAR2_TABLE_4000;
262: BEGIN
263: column_headers := JTF_VARCHAR2_TABLE_4000();
264: cursor_id := DBMS_SQL.OPEN_CURSOR;
265: DBMS_SQL.PARSE(cursor_id, sql_query, DBMS_SQL.V7);
266: DBMS_SQL.DESCRIBE_COLUMNS(cursor_id, column_count, columns_describe);
267: FOR loop_counter in 1..column_count
268: LOOP
261: column_headers JTF_VARCHAR2_TABLE_4000;
262: BEGIN
263: column_headers := JTF_VARCHAR2_TABLE_4000();
264: cursor_id := DBMS_SQL.OPEN_CURSOR;
265: DBMS_SQL.PARSE(cursor_id, sql_query, DBMS_SQL.V7);
266: DBMS_SQL.DESCRIBE_COLUMNS(cursor_id, column_count, columns_describe);
267: FOR loop_counter in 1..column_count
268: LOOP
269: column_headers.extend(1);
262: BEGIN
263: column_headers := JTF_VARCHAR2_TABLE_4000();
264: cursor_id := DBMS_SQL.OPEN_CURSOR;
265: DBMS_SQL.PARSE(cursor_id, sql_query, DBMS_SQL.V7);
266: DBMS_SQL.DESCRIBE_COLUMNS(cursor_id, column_count, columns_describe);
267: FOR loop_counter in 1..column_count
268: LOOP
269: column_headers.extend(1);
270: column_headers(column_headers.count) := columns_describe(loop_counter).col_name;
268: LOOP
269: column_headers.extend(1);
270: column_headers(column_headers.count) := columns_describe(loop_counter).col_name;
271: END LOOP;
272: DBMS_SQL.CLOSE_CURSOR(cursor_id);
273: RETURN column_headers;
274: END GET_COLUMN_NAMES;
275:
276: