問題タブ [callable-statement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2126 参照

java - CallableStatement を介してストアド プロシージャを呼び出す際の「パラメーターは OUT パラメーターではありません」エラー

MySQL Workbanch で作成されたプロシージャ「proc」を呼び出してみました。

このアプリケーションを使用して:

しかし、私は常にこのエラーが発生します:

私は何時間も間違っていることを見つけようとしてきましたが、成功しませんでした. 多くの質問を見ましたが 、関数内でトランザクションを実行できないため、これは役に立ちません

名前付きパラメーターを使用するとNullPointerExがスローされるため、これは役に立ちません(なぜ??)

プロシージャが存在するため、これは役に立たず、IN パラメータのみを使用する場合は例外をスローしませんが、INOUT または OUT を使用すると、前述の例外がスローされます

明らかな間違いが見られないので、これは役に立たない

JDBCコネクタの更新が役に立たなかったため、これは役に立ちません

だから私の質問は簡単です:何が間違っている可能性がありますか?

0 投票する
1 に答える
14335 参照

java - Java からのオラクル。オブジェクトパラメータのCallableStatementとNull?

かなり複雑なストアド プロシージャとして始まったものは、非常に単純なユース ケースに要約され、期待どおりに機能していないようです。

私のテストでは、ストアド プロシージャは次のようになります。

呼び出し可能なステートメント API を使用して、Java からこのストアド プロシージャを呼び出すことができます。

上記は期待どおりに機能します。メソッドが実行され、正常に完了します。ここがトリッキーになります。次のようなより複雑な構造を渡すことができるように、オラクル オブジェクト タイプのセットを作成しました。

次のように、これらの型をパラメーターとして受け入れるように手順を変更するだけです。

オラクルは壊れますPLS-00306: wrong number or types of arguments in call to 'CNV_CREATE_PERSON'

何を与える?null を値として別のプロシージャからこのプロシージャを呼び出すと、正常に動作します。Java API から呼び出すだけで壊れます。

解決策についてドキュメントを精査してきましたが、見つかりません。おそらく、賢明で学識のある皆さんの 1 人が、私を正しい方向に向けてくれるかもしれません。

ありがとう

0 投票する
1 に答える
74 参照

java - Java呼び出し可能ステートメントを介したMysqlは、エスケープ文字\をdbにも挿入します

java からはtest\'share\'today16102014 のように挿入しますが、mysql コマンド ラインからはtest'share'today16102014のように挿入します。test'share'today16102014のような Java 挿入の作成方法。

0 投票する
1 に答える
544 参照

java - 呼び出し可能なステートメントは実行を終了していませんが、同じプロシージャが完全に実行されます

ストアド プロシージャの実行に関する問題が発生しました。通常は 1 時間以上かかるシック クライアント システムからの手順を実行すると、callableStatement.execute()が動かなくなります。つまり、バックエンドで手順は完了しますが、システムはまだ実行モードで表示されます。バックエンドを確認したところ、プロシージャの最後の行も実行されていることがわかりました。これにはどのような理由が考えられますか?

Oracle 11g と ojdbc6 ドライバーを使用しています。

作成されたプロファイルのデータベースには、次のパラメーターが設定されます。

0 投票する
0 に答える
902 参照

java - 呼び出し可能ステートメントを実行できません。パラメーター番号 2 の取得は OUT パラメーターではありません SQL 例外

MySQL ワークベンチで次の手順を作成しました。

以下は私のJavaコードです:

しかし、実行すると次のエラーが発生します。

java.sql.SQLException: パラメータ番号 2 は OUT パラメータではありません

callable ステートメントを -> に変更してもString sql ="{? = call city(?,?,?)}";

新しいエラーが発生します:

java.sql.SQLException: 格納された関数呼び出しの戻り値に IN パラメータを設定できません。

0 投票する
1 に答える
1894 参照

db2 - DB2 メインフレーム: SqlTransactionRollbackException で queryTimeout が機能しない: SQLCODE=-911、SQLSTATE=40001

DB2 メインフレームから次の例外が発生しています。CallableStatement.querytimeout が設定されていますが、この場合は実際には機能しません。助言がありますか?ありがとう。

DB2 SQL エラー: SQLCODE=-911、SQLSTATE=40001、SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031、DRIVER=3.61.109; ネストされた例外は com.ibm.db2.jcc.am です。SqlTransactionRollbackException : DB2 SQL エラー: SQLCODE=-911、SQLSTATE=40001、SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031、DRIVER=3.61.109

以下の例外についても同様です。クエリのタイムアウトが機能しません。

ネストされた例外は com.ibm.db2.jcc.am.SqlException: UNAVAILABLE RESOURCE による UNSUCCESSFUL EXECUTION CAUSED BY UNSUCCESSFUL EXECUTION です。理由 00E30083、リソースのタイプ 00000802、およびリソース名 BINDLOCK