如何查看/验证程序结果?

时间:2010-09-23 02:14:24

标签: sql oracle plsql procedures

有人可以解释如何查看过程的结果,一切正常,代码有效,执行和编译没有错误。现在,我如何才能将结果视为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 个答案:

答案 0 :(得分:2)

你是在SQL * Plus中运行吗?你有“设置serveroutput;”?

答案 1 :(得分:1)

我建议这个功能

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.

答案 2 :(得分:0)

要在过程中输出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;

然后使用它,声明游标,执行proc,并输出结果。

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

(没有承诺上述语法完美 - 我现在远离数据库。但它应该足够接近让你朝着正确的方向前进。)

哦 - 如果适合您的环境,您可以在包内使用用户定义的游标类型。