web-dev-qa-db-ja.com

SQL Plusからストアドプロシージャを実行する方法

Oracleにストアドプロシージャがあり、SQLPlusからテストしたい。

私が使うなら

execute  my_stored_proc (-1,2,0.01) 

このエラーが発生する

PLS-00306: wrong number or types of arguments in call to my_stored_proc

プロシージャの開始はこれです

create or replace PROCEDURE my_stored_proc
( a IN NUMBER, 
  b IN NUMBER, 
  c IN NUMBER, 
  z out NUMBER
) AS ....

出力パラメーターにvarを指定する必要がありますか?そうですか?私は試した:

var z  NUMBER;

しかし、プロシージャを実行しようとすると、このエラーが発生します

execute  my_stored_proc (-1,2,0.01,z) 
PLS-00201: identifier 'Z' must be declared

また、SQL-Developerにいたときは、使用方法が表示され、入力が逆の順序で表示されました。

execute my_stored_proc(z number,c number,b number,a number);

それらを逆の順序で提供しますか、それともSQL-Developerで何かを提供しますか

私は手順を書いておらず、通常はそれらを処理しないので、明らかな何かを見逃している可能性があります。

ありがとう

7
cody

PL/SQLブロックまたはSQL * Plusバインド変数の2つのオプションがあります。

var z number

execute  my_stored_proc (-1,2,0.01,:z)

print z
16
Thilo