Hallo Leute, ich habe hier folgeden Code:
Es sollte folgende Anfrage rauskommen:
Leider hat Oracle ein Problem mit der Interpretation von PreparedStatement.
Ich bekomme eine SQLException:
Caused by: java.sql.SQLException: ORA-00907: Rechte Klammer fehlt
Weiß jemand eine Lösung?
Gruß,
madlena
Java:
public int getNumberOfWorkingDays(String start, String end) throws DAOSysException
{
String sqlString = "select count(*) from T_HOLIDAY where cdatestring in " +
"(select CDATESTRING from T_HOLIDAY where CDATESTRING BETWEEN " +
"TO_CHAR(TIMESTAMP?, 'YYYY-MM-DD') AND " +
"TO_CHAR(TIMESTAMP?, 'YYYY-MM-DD')) and CISWEEKEND + CISHOLIDAY = 0";
PreparedStatement stmt = null;
ResultSet rs = null;
int numberOfWorkingDays = 0;
try
{
stmt = prepareStatement(sqlString);
stmt.setString(1, start);
stmt.setString(2, end);
rs = stmt.executeQuery();
if(rs.first())
numberOfWorkingDays = rs.getInt(1);
}
catch (DAOSysException e)
{
logger.exception("[getNumberOfWorkingDays]", e);
throw(e);
} catch (SQLException e)
{
logger.exception("[getNumberOfWorkingDays]", e);
throw new DAOSysException(e);
}
finally
{
closeStatement(stmt);
closeResultSet(rs);
}
return numberOfWorkingDays;
}
Es sollte folgende Anfrage rauskommen:
SQL:
select count(*) from TWIM_HOLIDAY where cdatestring in (select CDATESTRING from TWIM_HOLIDAY where CDATESTRING BETWEEN TO_CHAR(TIMESTAMP'2012-05-09 00:00:00', 'YYYY-MM-DD') AND TO_CHAR(TIMESTAMP'2012-05-18 00:00:00', 'YYYY-MM-DD') and CISWEEKEND + CISHOLIDAY = 0)
Leider hat Oracle ein Problem mit der Interpretation von PreparedStatement.
Ich bekomme eine SQLException:
Caused by: java.sql.SQLException: ORA-00907: Rechte Klammer fehlt
Weiß jemand eine Lösung?
Gruß,
madlena
Zuletzt bearbeitet von einem Moderator: