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

Jalankan Segera dengan tipe Non-Sql

Itu tergantung apa yang Anda maksud dengan 'solusi' Jenisnya harus dideklarasikan pada level SQL, bukan di dalam blok PL/SQL (mungkin sebuah paket dalam kasus ini). Ini akan berhasil, misalnya:

CREATE OR REPLACE TYPE t_error_msgs AS TABLE OF VARCHAR2(2000)
/

CREATE OR REPLACE PACKAGE p42 AS
  FUNCTION handler RETURN t_error_msgs;
END p42;
/

CREATE OR REPLACE PACKAGE BODY p42 AS
  FUNCTION handler RETURN t_error_msgs IS
  BEGIN
    RETURN null; -- put real data here, obviously...
  END handler;
END p42;
/

DECLARE
  v_error_msg t_error_msgs;
  v_function varchar2(30);
BEGIN
  v_function := 'p42.handler';
  EXECUTE IMMEDIATE 'BEGIN :result := ' || v_function || '; END;'
    USING OUT v_error_msg;
END;
/

Atau Anda dapat mempertimbangkan kembali apakah Anda benar-benar membutuhkan ini untuk menjadi dinamis. Agaknya Anda melewati atau entah bagaimana menentukan fungsi untuk dipanggil dengan cepat dan mengisi v_function . Jika ada daftar nilai yang relatif pendek, mungkin lebih mudah untuk memiliki case dengan panggilan fungsi statis individu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungkan PDO dengan database Oracle

  2. Bagaimana cara mengganti nilai yang dipisahkan koma di kolom tabel dengan nilai input pengguna oracle

  3. Bagaimana cara menghubungkan Oracle Cloud Instance menggunakan Oracle Cloud Shell?

  4. Mengapa saya tidak dapat menggunakan Oracle BLOB dari Java Blob asli

  5. Cara menentukan Skema di dalam file Ekspor Pompa Data Oracle