[java] PreparedStatement.setNullにsqlTypeが必要なのはなぜですか?


Answers

JDBCドライバはsetNullから離れるように見えます。 setObject(<arg>、null)のサポートの追加を参照してください

より論理的な動作をサポートするデータベースの私のリストは次のとおりです。

  1. オラクル
  2. MySQL
  3. Sybase
  4. MS SQL Server
  5. HSQL

この論理的な振る舞いをサポートしていないデータベースのリストは、

  1. 保護されたヌルパラメータを持つ Derby クエリは失敗します
  2. PostgreSQL ISNULLのクエリでパラメータにnullを渡すことはできません
Question
  1. PreparedStatement.setNullのjavaドキュメントによると: "注意:パラメータのSQL型を指定する必要があります"。 メソッドが列のSQL型を必要とする理由は何ですか?

  2. java.sql.Types.VARCHARを渡すことは、varchar以外の列に対しても機能することに気付きました。 VARCHARが適切ではないシナリオがありますか(特定の列タイプまたは特定のDBプロバイダ)?

ありがとう。




Links



Tags

java java   sql sql   jdbc