0

RunnableJar (iText.jar、Java クラスなどの他のサードパーティの jar を含む jar) を作成し、その RunnableJar.jar を Oracle データベースにアップロードしましたloadjava。jarGetOfferには、1つのメソッドがあるというメインクラスがpublic String getOffer(String param1) { }あり、このメソッドの使用は、ユーザーの選択に従って複数のpdfを作成し、それらを連結することです。

これで、ストアド プロシージャが作成されました。

create or replace function getOffer(param1 in varchar2) return varchar2
    is language java name 'GetOffer.getOffer(java.lang.String) return java.lang.String';

そして、次の call ステートメントを使用して、このストアド プロシージャを呼び出しました。

SQL> VARIABLE  myString  VARCHAR2(20);
SQL> CALL getOffer("XYZ") INTO :myString

プロシージャを呼び出すと、次のエラーが発生します。

SQL> VARIABLE  myString  VARCHAR2(20);
SQL> CALL getOffer("XYZ") INTO :myString
 2  ;
CALL getOffer("Any String") INTO :myString
 *
ERROR at line 1:
ORA-06576: not a valid function or procedure name

どうすればこの問題を解決できますか?

4

1 に答える 1

1

投稿したコードは、ストアド プロシージャではなく、ストアド関数を作成しています。関数を呼び出したい場合

SELECT getOffer('xyz')
  INTO :myString
  FROM dual;

SQL および PL/SQL の文字列は、二重引用符ではなく単一引用符で区切られることにも注意してください。

于 2013-06-14T15:41:16.513 に答える