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

PL / SQL trích xuất tên cột câu lệnh SELECT từ truy vấn tùy chỉnh

Bạn có thể phân tích cú pháp câu lệnh bằng DBMS_SQL.parse và lấy các cột có 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. Các giá trị được phân tách bằng dấu phẩy cho hàm IN trong oracle

  2. Bất cứ ai có thể giải thích truy vấn này?

  3. Tôi gặp lỗi ORA-01775:lặp lại chuỗi từ đồng nghĩa khi tôi sử dụng sqlldr

  4. Làm cách nào để xuất kết quả thành các tab khác nhau của Excel trong Toad for Data Analyst?

  5. Phương pháp hay nhất về số lỗi Oracle raise_application_error