1

I need to call some PL/SQL procedures from my Java application. I can do it with JDBC. But the problem is that procedures are using the "PL/SQL Web Toolkit" and its packages (htp, owa _ util, owa _ cookie, ...). When I call them I get some exceptions as this:

Exception in thread "main" java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.OWA_UTIL", line 323
ORA-06512: at "SYS.HTP", line 859
ORA-06512: at "SYS.HTP", line 974
...

Is possible to call these procedures using a Java package or any other way?

I can't modify these procedures, but I can't create some.

Thanks for your help.

4

3 に答える 3

2

htf と htp は、事前にいくつかの設定が行われることを前提としています。これは、呼び出しが mod_plsql などの PL/SQL ゲートウェイを通過するときに自動的に行われます。ただし、手動で行うこともできます。

Ask Toad wikiに良い説明があります

htp と htf を正常に使用するには、いくつかの変数を定義してから cgi 環境を初期化する必要があります。

于 2009-09-03T15:38:24.767 に答える
0

このエラー メッセージは、間違ったデータ型の引数を渡しているか、間違ったデータ型の変数に結果を割り当てていることを意味します。コード、特にその割り当てを再確認する必要があります。または、ここにコードを投稿することもできます: SO ブレインの 1 人が問題を特定できると確信しています。

ちなみに、OWA_UTIL のどのメソッドを呼び出していますか?

于 2009-09-03T11:59:51.273 に答える
0

ここにあなたがそれを行うことができるサンプルコードがあります---

              CallableStatement stmt = conn.prepareCall("? = call test(?)");
              stmt.registerOutParameter(1, OracleTypes.INTEGER);
              stmt.setString(2, "callIndex");
              stmt.execute();
              Integer outputValue = stmt.getInt(1);

ここで test は、Javaの「callable statement」を介して呼び出されるストアド関数です。また、変数をストアドプロシージャまたはオラクルの関数に渡す必要がある場合は、OracleTypesに正しい変数を渡す必要があります。

于 2014-07-15T12:42:58.080 に答える