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

TO_CHAR của một loại Oracle PL / SQL TABLE

được rồi, xin lỗi vì cái này chưa hoàn thành, nhưng để theo dõi với @Lukas, đây là những gì tôi có cho đến nay:

Đầu tiên, thay vì cố gắng tạo các kiểu anydata / anytype, tôi đã thử sử dụng XML được trích xuất từ ​​một con trỏ ... kỳ lạ, nhưng chung chung của nó:

CREATE OR REPLACE procedure printCur(in_cursor IN sys_refcursor) IS
begin

    FOR c IN (SELECT ROWNUM rn,
                    t2.COLUMN_VALUE.getrootelement () NAME,
                    EXTRACTVALUE (t2.COLUMN_VALUE, 'node()') VALUE
               FROM TABLE (XMLSEQUENCE (in_cursor)) t,
                    TABLE (XMLSEQUENCE (EXTRACT (COLUMN_VALUE, '/ROW/node()'))) t2
               order by 1)

   LOOP
      DBMS_OUTPUT.put_line (c.NAME || ': ' || c.VALUE);
   END LOOP;

exception
    when others then raise;
end;
/

Bây giờ, để gọi nó, bạn cần một con trỏ, vì vậy tôi đã thử truyền sang con trỏ trong pl / sql, đại loại như:

open v_cur for select * from table(cast(v_tab as tab_type));

Nhưng tùy thuộc vào cách v_tab được định nghĩa, điều này có thể gây ra hoặc có thể không gây ra vấn đề trong ép kiểu pl / sql (sử dụng% rowtype trong def bảng lồng nhau dường như gây ra vấn đề).

Dù sao, bạn có thể xây dựng trên cái này hoặc tinh chỉnh nó theo ý muốn. (và có thể sử dụng xmltable ...)

Hy vọng điều đó sẽ giúp




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lệnh Oracle CREATE TABLE trong PL / SQL với 10 ví dụ

  2. Cách hiển thị ngày ở định dạng khác trong oracle

  3. System.Data.OracleClient yêu cầu phần mềm máy khách Oracle phiên bản 8.1.7

  4. 40 câu hỏi bạn phải biết về R12.2

  5. SINH () Hàm trong Oracle