Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Copyright 2009-2014 Pavel Ponec
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  *  Unless required by applicable law or agreed to in writing, software
  *  distributed under the License is distributed on an "AS IS" BASIS,
  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
 
 package org.ujorm.orm.dialect;
 
 import java.util.List;
Oracle (www.oracle.com/) release 9.0
 
 public class OracleDialect extends PostgreSqlDialect {
 
 
 	/* Returns a default JDBC URL
 	 * @see org.ujorm.orm.SqlDialect#getJdbcUrl()
 	 */
     @Override
     public String getJdbcUrl() {
         return "jdbc:oracle:thin:@myhost:1521:orcl";
     }
 
 	/* Returns a JDBC Driver
 	 * @see org.ujorm.orm.SqlDialect#getJdbcDriver()
 	 */
     @Override
     public String getJdbcDriver() {
         return "oracle.jdbc.driver.OracleDriver";
     }

    
Print no schema
 
     @Override
     public Appendable printCreateSchema(String schemaAppendable outthrows IOException {
         return out;
     }

    
Print SQL database SELECT

Parameters:
query The UJO query
count only count of items is required;
 
     @Override
     protected Appendable printSelectTable(Query queryboolean countAppendable outthrows IOException {
         if (!count && (query.isOffset() || query.isLimit())) {
             out.append("SELECT * FROM (SELECT ujorm__.*, ROWNUM AS ujorm_rownum FROM (\n");
             super.printSelectTable(querycountout);
             out.append("\n) ujorm__) WHERE ujorm_rownum > " + query.getOffset());
             if (query.isLimit()) {
                 final long to = query.getOffset() + query.getLimit();
                 out.append(" AND ujorm_rownum <= " + to);
             }
         } else {
             super.printSelectTable(querycountout);
         }
         return out;
     }
 
     @Override
     public void printOffset(Query queryAppendable outthrows IOException {
         // ORACLE has a special implementation of the LIMIT & OFFSET.
     }

    
PostgreSql dialect uses a database type OID (instead of the BLBO).
 
     @Override
     protected String getColumnType(final MetaColumn column) {
 
         switch (..of(column)) {
             case :
                 return "NUMBER";
             default:
                 // Don't call the super.getColumnType(..)
                 return ..of(column).name();
         }
     }

    
Print a SQL sript to add a new column to the table
Sample: ALTER TABLE sa_myphone.ord_order ADD (NEW_COLUMN INT DEFAULT 777 NOT NULL);
 
     @Override
     public Appendable printAlterTableAddColumn(MetaColumn columnAppendable outthrows IOException {
         out.append("ALTER TABLE ");
         printFullTableName(column.getTable(), out);
         out.append(" ADD (");
 
        if (column.isForeignKey()) {
            printFKColumnsDeclaration(columnout);
        } else {
            printColumnDeclaration_2(columnnullout);
        }
        out.append(" )");
        return out;
    }

    
Print a SQL to create column

Parameters:
column Database Column
aName The name parameter is not mandatory, the not null value means a foreign key.
Throws:
java.io.IOException
    public Appendable printColumnDeclaration_2(MetaColumn columnString aNameAppendable outthrows IOException {
        String name = aName!=null ? aName : column.getName();
        printQuotedName(nameout);
        out.append(' ');
        out.append(getColumnType(column));
        if (!..isDefault(column)) {
            out.append("(" + ..of(column));
            if (!..isDefault(column)) {
                out.append("," + ..of(column));
            }
            out.append(")");
        }
        if (column.hasDefaultValue()) {
            printDefaultValue(columnout);
        }
        if (..of(column) && aName == null) {
            out.append(" NOT NULL");
        }
        if (..of(column) && aName == null) {
            out.append(" PRIMARY KEY");
        }
        return out;
    }


    
No PARTIAL INDEX is supported.
    @Override
    public Appendable printIndexCondition(final MetaIndex indexfinal Appendable outthrows IOException {
        return out;
    }
    @Override
    public Appendable printInsert(List<? extends OrmUjoboint idxFromint idxToAppendable outthrows IOException {
        return printInsertBySelect(boidxFromidxTo"FROM DUAL"out);
    }

    
Create a SQL script for the NEXT SEQUENCE from a native database sequencer
    @Override
    public Appendable printNextSequence(String sequenceNameMetaTable tableAppendable outthrows IOException {
        out.append("SELECT ");
        out.append(sequenceName);
        out.append(".NEXTVAL FROM DUAL");
        return out;
    }
New to GrepCode? Check out our FAQ X