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

TO_CHAR dari tipe Oracle PL/SQL TABLE

ok, maaf ini tidak lengkap, tetapi untuk menindaklanjuti dengan @Lukas, inilah yang saya miliki sejauh ini:

Pertama, alih-alih mencoba membuat tipe data/apa saja, saya mencoba menggunakan XML yang diekstrak dari kursor...aneh, tapi generiknya:

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;
/

Sekarang, untuk menyebutnya, Anda memerlukan kursor, jadi saya mencoba melakukan casting ke kursor di pl/sql, seperti:

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

Tetapi tergantung pada bagaimana v_tab didefinisikan, ini mungkin atau mungkin tidak menyebabkan masalah dalam pl/sql cast (menggunakan %rowtype di tabel bersarang def tampaknya memberikan masalah).

Bagaimanapun, Anda dapat membangun ini atau memperbaikinya sesuka Anda. (dan mungkin menggunakan xmltable...)

Semoga membantu




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BadImageFormatException. Ini akan terjadi ketika berjalan dalam mode 64 bit dengan komponen klien Oracle 32 bit diinstal

  2. Oracle:Prosedur tersimpan Java mengirim Pesan JMS

  3. SOUNDEX() Fungsi di Oracle

  4. jar jdbc apa yang digunakan dengan oracle 11g &jdk 1.6 dan bagaimana menghubungkan ke db itu sendiri

  5. Bagaimana cara mengubah format tanggal dari MM/DD/YYYY ke YYYY-MM-DD di PL/SQL?