問題タブ [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 に答える
3102 参照

sql-server - CallableStatement を使用して NULL を設定する

SQL Server 2008でJDBCを使用しています。テーブルに、タイプが「decimal(18、2)」の列があります。「CallableStatement」を使用して、この列に null 値を挿入したいと考えています。それ、どうやったら出来るの?

私は試しcallstmt.setNull(14, java.sql.Types.DECIMAL);ました。しかし、それは機能しません。

HTTP ステータス 404 - /NSBMHCGcom.microsoft.sqlserver.jdbc.SQLServerException:%20Error%20converting%20data%20type%20nvarchar%20to%20numeric./eHRMS_AR_M_display_SetupOTConditions

これは私が得ているエラーです。

タイプ ステータス レポート

message /NSBMHCGcom.microsoft.sqlserver.jdbc.SQLServerException:%20Error%20converting%20data%20type%20nvarchar%20to%20numeric./eHRMS_AR_M_display_SetupOTConditions

説明 要求されたリソース (/NSBMHCGcom.microsoft.sqlserver.jdbc.SQLServerException:%20Error%20converting%20data%20type%20nvarchar%20to%20numeric./eHRMS_AR_M_display_SetupOTConditions) は利用できません。

これはコードの一部です。

================================================== ==================================================

================================================== ==================================================

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

java - JavaからOracleプロシージャを呼び出す

以下は私の pl\sql と Java の使用法です:

PL\SQL:

ジャワ:

私は実行呼び出しでエラーが発生しています:

java.sql.SQLException: ORA-06550: 行 1、列 7: PLS-00306: 'GETDETAILS' の呼び出しで引数の数または型が間違っています

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

sql - 別の接続で CallableStament を実行することは可能ですか?

CallableStatementのインスタンスを再利用することは、一般的に良い方法と考えられています (ここを確認してください)。

しかし、 を作成するときCallableStatement、そのステートメントは (私の理解では) 特定の にバインドされConnectionます。したがって、通常は次のようにします。

私が確認したところ、次のクエリは実行されません。

私の質問は、すべてのCallableStatementインスタンスを再利用したいが、一方で新しい接続を取得して古い接続を閉じることができる場合 (常に同じ接続を開いているとは限らない)、どうすればよいですか?

0 投票する
2 に答える
6642 参照

java - 出力パラメーターを使用すると、CallableStatement getResultSet が null を返す

ストアド プロシージャから複数の結果セットを取得しようとすると、奇妙な結果が得られます。SQL Server Management Studio から直接実行すると、ストアド プロシージャは正常に動作します。

と の javadoc があるため、これは混乱を招きexecuteますgetResultSet

execute: 最初の結果が ResultSet オブジェクトの場合は true を返します。最初の結果が更新カウントであるか、結果がない場合は false

getResultSet: ResultSet オブジェクトとしての現在の結果、または結果が更新カウントである場合、または結果がこれ以上ない場合は null

結果がこれ以上ない場合、getResultSet はここでのみ null を返す必要がありますよね? ただし、SQL サーバーでクエリを実行すると、3 つの結果セットが返されることがわかっています。

テストとして、getMoreResults()何らかの理由で結果セットが欠落しているかどうかを確認するために実行しました。

getMoreResultstrue を返しますが、結果セットを取得しようとすると、まだ NULL が返されます。結果セットをスキップするため、これはとにかく私が望むものではありませんが、少なくとも2番目の結果セットを取得する必要があります。

何が原因でしょうか? SQL Server が問題を引き起こしている結果セットを返す方法について何かありますか、それとも私が見逃しているものがありますか? 任意の提案をいただければ幸いです。

アップデート

これは、私が作成した出力パラメータに関連していたことが判明しました

パラメータを削除し、呼び出しを更新しました

そしてそれはうまくいきました。3 つの結果セットすべてを正しく取得できるようになりました。戻りコードはあまり気にしないので、おそらくこれで問題ありません。学術的な観点から、なぜ出力パラメータが結果セットの取得に問題を引き起こすのでしょうか?