Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

PL/SQL mengekstrak nama kolom pernyataan SELECT dari kueri khusus

Anda dapat mengurai pernyataan dengan DBMS_SQL.parse dan dapatkan kolom dengan DBMS_SQL.describe_columns :

DECLARE
  v_SQL VARCHAR2(32767 CHAR);
  v_Result VARCHAR2(32767 CHAR) := '';
  l_cursor        PLS_INTEGER;
  l_col_cnt       PLS_INTEGER;
  i               PLS_INTEGER;
  l_desc_tab      DBMS_SQL.desc_tab;
BEGIN 
  v_SQL := q'[SELECT 1 as "MY_NUMBER", 'z' as "MY_CHAR" from dual]';
  l_cursor := DBMS_SQL.open_cursor;
  DBMS_SQL.parse(l_cursor, v_SQL, DBMS_SQL.native);
  DBMS_SQL.describe_columns(l_cursor, l_col_cnt, l_desc_tab);

  FOR i IN 1 .. l_col_cnt LOOP
    v_Result := v_Result ||' ' || l_desc_tab(i).col_name;
  END LOOP;

  DBMS_OUTPUT.put_line('v_Result: ' || v_Result);

END;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mencoba memuat pustaka klien Oracle melemparkan BadImageFormatException

  2. Cara menyinkronkan metode Java yang dipanggil oleh PL/SQL

  3. Dapatkan pembuatan boneka gagal ketika skrip SQL yang terkandung gagal dieksekusi

  4. Bagaimana Anda memilih bidang varchar2 dalam format 'HH24:MI:SSxFF6' sebagai INTERVAL HOUR TO SECOND(6)?

  5. PL/SQL:ORA-00904:pengenal tidak valid &PL/SQL:Pernyataan diabaikan&PLS-00364:penggunaan variabel indeks loop tidak valid