Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Pl / SQL- Lấy tên cột từ một truy vấn

Tôi tin rằng bạn có thể sử dụng DESCRIBE_COLUMNS để thực hiện việc này. Chỉ cần chuyển vào con trỏ và các tham số bắt buộc khác.

http://docs.oracle.com/cd /B19306_01/appdev.102/b14258/d_sql.htm#i1026120

declare
    v_sql varchar2(32767) := 'select 1 column1, 2 column2 from dual';
    v_cursor_id integer;
    v_col_cnt integer;
    v_columns dbms_sql.desc_tab;
begin
    v_cursor_id := dbms_sql.open_cursor;
    dbms_sql.parse(v_cursor_id, v_sql, dbms_sql.native);
    dbms_sql.describe_columns(v_cursor_id, v_col_cnt, v_columns);

    for i in 1 .. v_columns.count loop
        dbms_output.put_line(v_columns(i).col_name);
    end loop;

    dbms_sql.close_cursor(v_cursor_id);
exception when others then
    dbms_sql.close_cursor(v_cursor_id);
    raise;
end;
/

Output:
COLUMN1
COLUMN2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01027:ràng buộc các biến không được phép định nghĩa dữ liệu khi cố gắng sử dụng if elseif

  2. ORA-01111 trong MRP trong cơ sở dữ liệu Chế độ chờ vật lý

  3. Dữ liệu khối từ Oracle sang tệp văn bản bằng python

  4. Hiển thị tệp pdf được lưu trữ trên đĩa cục bộ bằng Oracle Forms 6i

  5. Giáng sinh đến sớm (Oracle 12.2)