Oracle
 sql >> база данни >  >> RDS >> Oracle

Извикване на съхранена процедура с друга в Oracle

Вашите съхранени процедури работят като кодирани. Проблемът е с последния ред, той не може да извика нито една от вашите съхранени процедури.

Три възможности за избор в SQL*Plus са:обаждане , exec и анонимен PL/SQL блок.

обаждане изглежда като SQL ключова дума и е документирана в SQL Reference. http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4008.htm#BABDEHHG Синтаксичната диаграма показва, че парентезата е задължителна, дори когато не са предадени аргументи към рутината за извикване.

CALL test_sp_1();

Анонимен блок PL/SQL е PL/SQL, който не е вътре в наименувана процедура, функция, тригер и т.н. Може да се използва за извикване на вашата процедура.

BEGIN
    test_sp_1;
END;
/

Exec е команда SQL*Plus, която е пряк път за горния анонимен блок. EXEC <име_на_процедура> ще бъде предадено на DB сървъра като BEGIN <име_на_процедура>; КРАЙ;

Пълен пример:

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. Как можем да определим размера на изходния параметър в съхранената процедура?

  2. Как мога да преброя броя на думите в низ в Oracle?

  3. Импортирайте CSV файл в таблицата на Oracle с помощта на съхранена процедура

  4. Закръгляване до 2 знака след десетичната запетая в SQL

  5. Какво е точно BLOB в контекста на СУБД