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

jdbc - SQLException: 現在のコンテキストでステートメントを送信できません

プリペアド ステートメントを介してストアド プロシージャを呼び出すときにこの例外が発生しましたが、呼び出し可能なステートメントでは機能します。voltdb でストアド プロシージャを呼び出すために callable ステートメントを使用する必要があるかどうか疑問に思っていますか?

以下の例外をスローします。

これはうまくいきます。

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

java - 'select from dual' をパラメーターとして Java 呼び出し可能ステートメントに渡す

SELECT FROM DUAL例のように、Javaの呼び出し可能なステートメントにパラメーターとして渡そうとしています:

この関数を呼び出すと、例外が発生します: ORA-06550: 行 1、列 165: PLS-00103: 次のいずれかを期待するときにシンボル "SELECT" が発生しました: ( - + case mod new not null その他...

function as を呼び出すと正常{?=call function1( ?, ?, ?)}に動作しますが、別の関数をパラメーターとして呼び出す必要があります (パスワード暗号化など)。

ある関数を別の関数のパラメータとして呼び出す方法はありますか?

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

java - statement.setArray() を使用して Scala Option[List[_]] を Java JDBC Array に渡す

Scala から JDBC callableStatements へのインターフェースを構築しようとしています。を除いて、ほとんどの場合、それは簡単ですLists

何らかのタイプの Scala を取り、Listそれを渡せる Java 配列に変換できるようにする必要がありますがstatement.setArray(type, array)、運がありません (Java と JDBC をよく知らないため)。

これが私がやろうとしていることです:

単純な値の場合は非常に簡単ですが、setArray()呼び出しに関しては行き詰まっています。

アドバイスをいただければ幸いです。これで何時間も立ち往生...

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

arrays - NULL (または空の) 配列を JDBC callableStatement (配列を予期する) に渡す方法

配列型を必要とする JDBC ストアド関数 (callable ステートメントを使用) に NULL 値を渡すのに問題があります。これは、IN パラメータを NULL に設定しようとしている場合にのみ問題になります (たとえば、空の配列を作成して渡すことはできますが、そうする必要はありません)。

たとえば、回避策としてこれを行うことができます。

しかし、これは私を悩ませます。まず、NULL 配列を渡すための API があるはずです。第二に、正当な理由もなく空の配列を作成しています (これはワンライナーではないため、正しい配列型を作成する必要があります。いくつかの異なる型をサポートする必要があります)。ぐちゃぐちゃになります。

私はこれを行うことができるはずです(または少なくともかなり似たようなこと):

ただし、例外が発生します。

com.edb.util.PSQLException: エラー: 関数 app_fetch_user_list_pkg.n_execute(文字可変、文字可変[]、文字可変、ブール値、整数) が存在しません

何か案は?(私たちは Postgresql/EDB と Oracle を使用しています...これまでのところ、私は Postgresql インスタンスを試してきました)。

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

java - Java byte[] を java.lang.Object[] に変換する方法 (JDBC で callableStatement() に渡すため)

byte[]aを aに変換しようとしていjava.lang.Object[]ます。基本的に、これはここで説明した逆の問題であり、Scala の callableStatementsに関する私の質問に関連しています (ただし、それとは異なります) 。

結論:byte[]バイナリ ファイルを表す があります。callableStatement.setObject()を使用してJDBCに渡す必要がありますが、に変換するcreateArrayOf("byte", objectArray)方法がわかりません。byte[]Object[]

これは私が今持っているものです...getBytes()関数はを返しますがbyte[]、これはもちろんコンパイラエラーを生成します:

残念ながら、これによりコンパイラ エラーが発生します。

SentimentDao.java:111: エラー: 互換性のない型: バイト [] をオブジェクト [] に変換できません

createArrayOf()また、最初の引数がそうあるべきかどうかは完全にはわかりませんbyte(わかっている場合は、それも回答に追加してください)。

ありがとう - 助けていただければ幸いです。

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

java - MySQL CallableStatement.getObject の動作に一貫性がない

_test_jdbc_inconsistency開発システムの MySQL のインスタンスで、次の簡単な手順をテスト スキーマ内で定義しています。

しかし、驚いたことに、次の簡単なテストは失敗します

矛盾は最後のassertTrueステートメントでフラグが立てられます。parameter-index を受け入れるのオーバーロードを呼び出すと、CallableStatement.getObject期待される型 ( java.lang.Integer) の結果が返されますが、 parameter-name を受け入れる他のオーバーロードは、一貫性のない type の結果を返しますjava.lang.Long。私は符号付き整数を使用しており、JDBC でのout パラメータの使用に関する多くの指示、特にMySQL のドキュメントで提供されているものに基づいているため、プロセスは正しいように見え、これは一貫性のない動作のように見えます。

他の誰かがこの問題を確認できますか?

私の環境:

  • Windows 8.1 x64
  • JDK 1.8.0_45 (x64/x86)
  • MySQL コネクタ/J 5.1.34
  • MySQL サーバー 5.6.24
  • テストNG 6.9.5
0 投票する
1 に答える
865 参照

java - Java コードを使用して Oracle ストアド プロシージャを呼び出すとエラーが発生する

Java アプリケーションで PL/SQL プロシージャを呼び出して、データベース エントリを更新しています。

しかし、executeUpdate() で以下のエラーが発生しています

私はどこで間違っていますか?