1

誰かが手順の結果を確認する方法を説明できますか?すべてが正常に機能しており、コードは有効で、実行され、エラーなしでコンパイルされています。さて、どうすれば結果をクエリなどとして見ることができますか。

exの手順は、給与の合計に関するものです。

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; 
4

3 に答える 3

2

これをSQL*Plusで実行していますか?「serveroutputをオンに設定」しましたか?

于 2010-09-23T02:45:46.780 に答える
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.
于 2010-09-23T09:15:56.387 に答える
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;

(上記が構文的に完璧であるという約束はありません。私は現在DBから離れています。しかし、正しい方向に進むには十分に近いはずです。)

ああ-そして、それがあなたの環境に適切であるならば、あなたはパッケージの中でユーザー定義のカーソルタイプを使うことができます。

于 2010-09-23T02:42:29.180 に答える