📄 oracle8idialect.java
字号:
else { pagingSelect.append("select * from ( "); } pagingSelect.append(sql); if (hasOffset) { pagingSelect.append(" ) row_ ) where rownum_ <= ? and rownum_ > ?"); } else { pagingSelect.append(" ) where rownum <= ?"); } if ( isForUpdate ) { pagingSelect.append( " for update" ); } return pagingSelect.toString(); } /** * Allows access to the basic {@link Dialect#getSelectClauseNullString} * implementation... * * @param sqlType The {@link java.sql.Types} mapping type code * @return The appropriate select cluse fragment */ public String getBasicSelectClauseNullString(int sqlType) { return super.getSelectClauseNullString( sqlType ); } public String getSelectClauseNullString(int sqlType) { switch(sqlType) { case Types.VARCHAR: case Types.CHAR: return "to_char(null)"; case Types.DATE: case Types.TIMESTAMP: case Types.TIME: return "to_date(null)"; default: return "to_number(null)"; } } public String getCurrentTimestampSelectString() { return "select sysdate from dual"; } public String getCurrentTimestampSQLFunctionName() { return "sysdate"; } // features which remain constant across 8i, 9i, and 10g ~~~~~~~~~~~~~~~~~~ public String getAddColumnString() { return "add"; } public String getSequenceNextValString(String sequenceName) { return "select " + getSelectSequenceNextValString( sequenceName ) + " from dual"; } public String getSelectSequenceNextValString(String sequenceName) { return sequenceName + ".nextval"; } public String getCreateSequenceString(String sequenceName) { return "create sequence " + sequenceName; //starts with 1, implicitly } public String getDropSequenceString(String sequenceName) { return "drop sequence " + sequenceName; } public String getCascadeConstraintsString() { return " cascade constraints"; } public boolean dropConstraints() { return false; } public String getForUpdateNowaitString() { return " for update nowait"; } public boolean supportsSequences() { return true; } public boolean supportsPooledSequences() { return true; } public boolean supportsLimit() { return true; } public String getForUpdateString(String aliases) { return getForUpdateString() + " of " + aliases; } public String getForUpdateNowaitString(String aliases) { return getForUpdateString() + " of " + aliases + " nowait"; } public boolean bindLimitParametersInReverseOrder() { return true; } public boolean useMaxForLimit() { return true; } public boolean forUpdateOfColumns() { return true; } public String getQuerySequencesString() { return " select sequence_name from all_sequences" + " union" + " select synonym_name" + " from all_synonyms us, all_sequences asq" + " where asq.sequence_name = us.table_name" + " and asq.sequence_owner = us.table_owner"; } public String getSelectGUIDString() { return "select rawtohex(sys_guid()) from dual"; } public ViolatedConstraintNameExtracter getViolatedConstraintNameExtracter() { return EXTRACTER; } private static ViolatedConstraintNameExtracter EXTRACTER = new TemplatedViolatedConstraintNameExtracter() { /** * Extract the name of the violated constraint from the given SQLException. * * @param sqle The exception that was the result of the constraint violation. * @return The extracted constraint name. */ public String extractConstraintName(SQLException sqle) { int errorCode = JDBCExceptionHelper.extractErrorCode(sqle); if ( errorCode == 1 || errorCode == 2291 || errorCode == 2292 ) { return extractUsingTemplate( "constraint (", ") violated", sqle.getMessage() ); } else if ( errorCode == 1400 ) { // simple nullability constraint return null; } else { return null; } } }; // not final-static to avoid possible classcast exceptions if using different oracle drivers. int oracletypes_cursor_value = 0; public int registerResultSetOutParameter(java.sql.CallableStatement statement,int col) throws SQLException { if(oracletypes_cursor_value==0) { try { Class types = ReflectHelper.classForName("oracle.jdbc.driver.OracleTypes"); oracletypes_cursor_value = types.getField("CURSOR").getInt(types.newInstance()); } catch (Exception se) { throw new HibernateException("Problem while trying to load or access OracleTypes.CURSOR value",se); } } // register the type of the out param - an Oracle specific type statement.registerOutParameter(col, oracletypes_cursor_value); col++; return col; } public ResultSet getResultSet(CallableStatement ps) throws SQLException { ps.execute(); return ( ResultSet ) ps.getObject( 1 ); } public boolean supportsUnionAll() { return true; } public boolean supportsCommentOn() { return true; } public boolean supportsTemporaryTables() { return true; } public String generateTemporaryTableName(String baseTableName) { String name = super.generateTemporaryTableName(baseTableName); return name.length() > 30 ? name.substring( 1, 30 ) : name; } public String getCreateTemporaryTableString() { return "create global temporary table"; } public String getCreateTemporaryTablePostfix() { return "on commit delete rows"; } public boolean dropTemporaryTableAfterUse() { return false; } public boolean supportsCurrentTimestampSelection() { return true; } public boolean isCurrentTimestampSelectStringCallable() { return false; } // Overridden informational metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ public boolean supportsEmptyInList() { return false; } public boolean supportsExistsInSelect() { return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -