/** * INTERNAL: Appends an Oracle specific Timestamp, if usesNativeSQL is true otherwise use the ODBC * format. Native Format: to_timestamp ('1997-11-06 10:35:45.656' , 'yyyy-mm-dd hh:mm:ss.ff') */ protected void appendTimestamp(java.sql.Timestamp timestamp, Writer writer) throws IOException { if (usesNativeSQL()) { writer.write("to_timestamp('"); writer.write(Helper.printTimestamp(timestamp)); writer.write("','yyyy-mm-dd HH24:MI:SS.FF')"); } else { super.appendTimestamp(timestamp, writer); } }
/** * INTERNAL: Note that index (not index+1) is used in statement.setObject(index, parameter) * Binding starts with a 1 not 0, so make sure that index > 0. Treat Calendar separately. Bind * Calendar as TIMESTAMPTZ. */ public void setParameterValueInDatabaseCall( Object parameter, PreparedStatement statement, int index, AbstractSession session) throws SQLException { if (parameter instanceof Calendar) { Calendar calendar = (Calendar) parameter; Connection conn = getConnection(session, statement.getConnection()); TIMESTAMPTZ tsTZ = TIMESTAMPHelper.buildTIMESTAMPTZ(calendar, conn, shouldPrintCalendar(conn)); statement.setObject(index, tsTZ); } else { super.setParameterValueInDatabaseCall(parameter, statement, index, session); } }
/** INTERNAL: Allow the use of XMLType operators on this platform. */ protected void initializePlatformOperators() { super.initializePlatformOperators(); addOperator(ExpressionOperator.extract()); addOperator(ExpressionOperator.extractValue()); addOperator(ExpressionOperator.existsNode()); addOperator(ExpressionOperator.isFragment()); addOperator(ExpressionOperator.getStringVal()); addOperator(ExpressionOperator.getNumberVal()); addOperator(SpatialExpressionOperators.withinDistance()); addOperator(SpatialExpressionOperators.relate()); addOperator(SpatialExpressionOperators.filter()); addOperator(SpatialExpressionOperators.nearestNeighbor()); }
/** * INTERNAL: Appends an Oracle specific Timestamp with timezone and daylight time elements if * usesNativeSQL is true, otherwise use the ODBC format. Native Format: (DST) to_timestamp_tz * ('1997-11-06 10:35:45.345 America/Los_Angeles','yyyy-mm-dd hh:mm:ss.ff TZR TZD') (non-DST) * to_timestamp_tz ('1997-11-06 10:35:45.345 America/Los_Angeles','yyyy-mm-dd hh:mm:ss.ff TZR') */ protected void appendCalendar(Calendar calendar, Writer writer) throws IOException { if (usesNativeSQL()) { writer.write("to_timestamp_tz('"); writer.write(TIMESTAMPHelper.printCalendar(calendar)); // append TZD element if the calendar's timezone is in daylight time if (TIMESTAMPHelper.shouldAppendDaylightTime(calendar)) { writer.write("','yyyy-mm-dd HH24:MI:SS.FF TZR TZD')"); } else { writer.write("','yyyy-mm-dd HH24:MI:SS.FF TZR')"); } } else { super.appendCalendar(calendar, writer); } }