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

Panggil prosedur tersimpan dengan yang lain di Oracle

Prosedur tersimpan Anda berfungsi sebagai kode. Masalahnya adalah dengan baris terakhir, ia tidak dapat memanggil salah satu prosedur tersimpan Anda.

Tiga pilihan dalam SQL*Plus adalah:call , exec , dan blok PL/SQL anonim.

call tampaknya menjadi kata kunci SQL, dan didokumentasikan dalam Referensi SQL. http://download.Oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4008.htm#BABDEHHG Diagram sintaks menunjukkan bahwa parentesis diperlukan, bahkan ketika tidak ada argumen yang diteruskan ke rutin panggilan.

CALL test_sp_1();

Blok PL/SQL anonim adalah PL/SQL yang tidak berada di dalam prosedur bernama, fungsi, pemicu, dll. Ini dapat digunakan untuk memanggil prosedur Anda.

BEGIN
    test_sp_1;
END;
/

Exec adalah perintah SQL*Plus yang merupakan jalan pintas untuk blok anonim di atas. EXEC <procedure_name> akan diteruskan ke server DB sebagai BEGIN <procedure_name>; END;

Contoh lengkap:

SQL> SET SERVEROUTPUT ON
SQL> CREATE OR REPLACE PROCEDURE test_sp 
  2  AS 
  3  BEGIN 
  4      DBMS_OUTPUT.PUT_LINE('Test works'); 
  5  END;
  6  /

Procedure created.

SQL> CREATE OR REPLACE PROCEDURE test_sp_1 
  2  AS
  3  BEGIN
  4      DBMS_OUTPUT.PUT_LINE('Testing'); 
  5      test_sp; 
  6  END;
  7  /

Procedure created.

SQL> CALL test_sp_1();
Testing
Test works

Call completed.

SQL> exec test_sp_1
Testing
Test works

PL/SQL procedure successfully completed.

SQL> begin
  2      test_sp_1;
  3  end;
  4  /
Testing
Test works

PL/SQL procedure successfully completed.

SQL> 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh untuk Mendemonstrasikan Kerentanan SQL Injection dan Pencegahannya di Oracle

  2. Perbedaan antara pengguna dan skema di Oracle?

  3. Bagaimana Anda terhubung ke server LDAP menggunakan node-Oracledb?

  4. Fungsi NLS_COLLATION_NAME() di Oracle

  5. Cara Membuat Array Asosiatif Di Database Oracle