問題タブ [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.
java - CallableStatement を介してストアド プロシージャを呼び出す際の「パラメーターは OUT パラメーターではありません」エラー
MySQL Workbanch で作成されたプロシージャ「proc」を呼び出してみました。
このアプリケーションを使用して:
しかし、私は常にこのエラーが発生します:
私は何時間も間違っていることを見つけようとしてきましたが、成功しませんでした. 多くの質問を見ましたが 、関数内でトランザクションを実行できないため、これは役に立ちません
名前付きパラメーターを使用するとNullPointerExがスローされるため、これは役に立ちません(なぜ??)
プロシージャが存在するため、これは役に立たず、IN パラメータのみを使用する場合は例外をスローしませんが、INOUT または OUT を使用すると、前述の例外がスローされます
JDBCコネクタの更新が役に立たなかったため、これは役に立ちません
だから私の質問は簡単です:何が間違っている可能性がありますか?
java - Java からのオラクル。オブジェクトパラメータのCallableStatementとNull?
かなり複雑なストアド プロシージャとして始まったものは、非常に単純なユース ケースに要約され、期待どおりに機能していないようです。
私のテストでは、ストアド プロシージャは次のようになります。
呼び出し可能なステートメント API を使用して、Java からこのストアド プロシージャを呼び出すことができます。
上記は期待どおりに機能します。メソッドが実行され、正常に完了します。ここがトリッキーになります。次のようなより複雑な構造を渡すことができるように、オラクル オブジェクト タイプのセットを作成しました。
次のように、これらの型をパラメーターとして受け入れるように手順を変更するだけです。
オラクルは壊れますPLS-00306: wrong number or types of arguments in call to 'CNV_CREATE_PERSON'
何を与える?null を値として別のプロシージャからこのプロシージャを呼び出すと、正常に動作します。Java API から呼び出すだけで壊れます。
解決策についてドキュメントを精査してきましたが、見つかりません。おそらく、賢明で学識のある皆さんの 1 人が、私を正しい方向に向けてくれるかもしれません。
ありがとう
java - Java呼び出し可能ステートメントを介したMysqlは、エスケープ文字\をdbにも挿入します
java からはtest\'share\'today16102014 のように挿入しますが、mysql コマンド ラインからはtest'share'today16102014のように挿入します。test'share'today16102014のような Java 挿入の作成方法。
java - 呼び出し可能なステートメントは実行を終了していませんが、同じプロシージャが完全に実行されます
ストアド プロシージャの実行に関する問題が発生しました。通常は 1 時間以上かかるシック クライアント システムからの手順を実行すると、callableStatement.execute()
が動かなくなります。つまり、バックエンドで手順は完了しますが、システムはまだ実行モードで表示されます。バックエンドを確認したところ、プロシージャの最後の行も実行されていることがわかりました。これにはどのような理由が考えられますか?
Oracle 11g と ojdbc6 ドライバーを使用しています。
作成されたプロファイルのデータベースには、次のパラメーターが設定されます。
java - 呼び出し可能ステートメントを実行できません。パラメーター番号 2 の取得は OUT パラメーターではありません SQL 例外
MySQL ワークベンチで次の手順を作成しました。
以下は私のJavaコードです:
しかし、実行すると次のエラーが発生します。
java.sql.SQLException: パラメータ番号 2 は OUT パラメータではありません
callable ステートメントを -> に変更してもString sql ="{? = call city(?,?,?)}";
新しいエラーが発生します:
java.sql.SQLException: 格納された関数呼び出しの戻り値に IN パラメータを設定できません。
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