0
現在、OracleのDBに対してjdbctemplateを使用して実行することは非常に単純なクエリを取得しようと、次のエラーに実行している:Oracleの無効な列
PreparedStatementCallback; uncategorized SQLException for SQL; Invalid column type; nested exception is java.sql.SQLException: Invalid column type
列
SYSTEM_UNIQUE_ID VARCHAR2(50 CHAR)
SYSTEM_TYPE_ID NUMBER(4,0)
コール
public int getSystemUniqueIDCount(final String systemUniqueID, final String systemTypeID) throws SQLException {
String checkCountQuery = "select count(*) as count from master_account where system_unique_id = ? and system_type_id = ?";
Map<String, Object> row = getTemplate().queryForMap(checkCountQuery , new PreparedStatementSetter() {
@Override
public void setValues(PreparedStatement pstmt) throws SQLException {
pstmt.setString(1, systemUniqueID.toUpperCase());
pstmt.setInt(2, Integer.parseInt(systemTypeID));
}
});
return (int) row.getOrDefault("count", 0);
}
どんな助けでも大いに訴えられます。
[PrepardStatementSetter]を[引数として]使用しようとしていませんか?(http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/ JdbcTemplate.html#queryForMap-java.lang.String-java.lang.Object ...-)? (私が使用したものではありませんが、あなたがドキュメントと何をしているのかは一致しません - 私は明らかに何かを見逃しているかもしれません!) –
私はアレックスに同意して、あなたの現在のスニペットがどのようにコンパイルされ、あなたが共有したものでランタイム 'SQLException'をどのように見ることができましたか? 'queryForMap()'または単に '' query() ''(http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core)を使用しますか? /JdbcTemplate.html#query-java.lang.String-java.lang.Object:A-org.springframework.jdbc.core.ResultSetExtractor-)? –
@AlexPooleドキュメントを読み直した後、PreparedStatementSetterをquery()の引数として使用できますが、これは広範囲に使用されていますが、問題のある場所にあるqueryformap()では使用されません。それがなぜコンパイルされるのか?明らかにPreparedStatementSetterは、実際に値を提供しないものの、有効なオブジェクト配列として数えます。私はquery()に切り替えましたが、今は何も意図どおりに動作しています。あなたとミックのおかげです。 – iamthereplicant