Как просмотреть / проверить результат процедуры? - PullRequest
0 голосов
/ 23 сентября 2010

Может кто-нибудь объяснить, как увидеть результаты процедуры, все работает нормально, код верен, выполнен и скомпилирован без ошибок.Теперь, как я могу увидеть результаты как Query или что-то еще.

В бывшей процедуре речь идет о сумме зарплаты.

CREATE OR REPLACE PROCEDURE HR.TOTAL_SALARY AS    
   total_salary NUMBER(12,2);    
BEGIN    

  SET TRANSACTION READ ONLY;    

  SELECT SUM (salary) 
    INTO total_salary 
    FROM employees;    

  DBMS_OUTPUT.PUT_LINE('Total salary 1: ' || total_salary);     
  COMMIT;    

END; 

Ответы [ 3 ]

2 голосов
/ 23 сентября 2010

Вы запускаете это в SQL * Plus?Вы "включили выход сервера";

1 голос
/ 23 сентября 2010

Я рекомендую для этого функцию

CREATE OR REPLACE FUNCTION HR.TOTAL_SALARY return number AS    
   total_salary NUMBER(12,2);    
BEGIN    

  SELECT SUM (salary) 
    INTO total_salary 
    FROM employees;    

return total_salary;

END; 

Использование для этого:

select hr.TOTAL_SALARY() as total_sal from dual.
0 голосов
/ 23 сентября 2010

Чтобы вывести результаты оператора select в процедуре, вам нужно использовать курсор.

create procedure myproc 
(in_variable IN number, out_records OUT sys_refcursor)
as
begin
open out_records for

select * from mytable
where column = in_variable;

end;

, а затем использовать его, объявить курсор, выполнить процедуру и вывести результаты.

variable records refcursor;
exec myproc(1, :records);
print :records;

(нет обещаний, что вышеприведенное синтаксически идеально - я сейчас далеко от БД. Но оно должно быть достаточно близко, чтобы направить вас в нужном направлении.)

О -и вы можете использовать определенный пользователем тип курсора внутри пакета, если это соответствует вашей среде.

...