次のコードを使用してコードが存在するかどうかを確認します。同じコードがない場合、executeQuery()は問題ありません。ORA-00904データが存在する場合のエラー
public boolean isExist(String code) throws DataBaseException {
boolean isExist = false;
StringBuffer querySql = new StringBuffer();
querySql.append(" SELECT ");
querySql.append(" MY_CODE ");
querySql.append(" FROM ");
querySql.append(" MY_MST ");
querySql.append(" WHERE ");
querySql.append(" MY_CODE = ? ");
try {
super.setQuerySql(querySql.toString());
super.addParameter(Types.VARCHAR, code);
List<Object> resultsList = super.executeQuery();
if (resultsList != null && resultsList.size() > 0) {
isPsiExist = true;
}
} catch (Exception e) {
throw new DataBaseException(e, "Can't get the code.", this.getClass().getName(), querySql.toString());
}
return isExist;
}
ただし、コードが存在する場合は、ORA-00904が発生します。その理由を教えてください。どうすればこの問題を解決できますか?
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [ SELECT MY_CODE FROM MY_MST WHERE MY_CODE = ? ]; nested exception is java.sql.SQLException: invalid identifier.
以下のように変更した後、okです?' 。 –
super.addParameterがNGですか?しかし、私がINSERTと同じ方法を使用しても、問題はありません。 – mikezang
NGの意味は分かりません。ヘルプが必要な場合は、関連するコードを投稿してください。 –