Class OracleDialect

java.lang.Object
io.github.torand.fastersql.dialect.OracleDialect
All Implemented Interfaces:
Dialect

public class OracleDialect extends Object implements Dialect
Defines the Oracle SQL dialect.

Row offset clause is supported from Oracle 12c onwards Row limit clause is supported from Oracle 12c onwards

  • Constructor Details

    • OracleDialect

      public OracleDialect()
      Creates an Oracle Dialect implementation.
  • Method Details

    • getProductName

      public String getProductName()
      Description copied from interface: Dialect
      Gets the name of the RDBMS product associated with this SQL dialect.
      Specified by:
      getProductName in interface Dialect
      Returns:
      the name of the RDBMS product.
    • formatRowNumLiteral

      public Optional<String> formatRowNumLiteral()
      Description copied from interface: Dialect
      Returns the row number literal formatted for a specific SQL dialect.
      Specified by:
      formatRowNumLiteral in interface Dialect
      Returns:
      the row number literal formatted for a specific SQL dialect.
    • formatSetOperator

      public String formatSetOperator(SetOperator setOperator)
      Description copied from interface: Dialect
      Returns the specified set operator formatted for a specific SQL dialect.
      Specified by:
      formatSetOperator in interface Dialect
      Parameters:
      setOperator - the set operator.
      Returns:
      the set operator for a specific SQL dialect.
    • formatToNumberFunction

      public String formatToNumberFunction(String operand, int precision, int scale)
      Description copied from interface: Dialect
      Returns the 'to_number' function formatted for a specific SQL dialect.
      Specified by:
      formatToNumberFunction in interface Dialect
      Parameters:
      operand - the string expression to be evaluated as a number
      precision - the precision that represents the number of significant digits
      scale - the scale that that represents the number of digits after the decimal point. Must be less than or equal to the precision.
      Returns:
      the 'to_number' function for a specific SQL dialect.
    • formatSubstringFunction

      public String formatSubstringFunction(String operand, int startPos, int length)
      Description copied from interface: Dialect
      Returns the 'substring' function formatted for a specific SQL dialect.
      Specified by:
      formatSubstringFunction in interface Dialect
      Parameters:
      operand - the string expression to get substring from
      startPos - the start position (1-based) of the substring
      length - the length of the substring
      Returns:
      the 'substring' function for a specific SQL dialect.
    • formatConcatFunction

      public String formatConcatFunction(List<String> operands)
      Description copied from interface: Dialect
      Returns the 'concat' function formatted for a specific SQL dialect.
      Specified by:
      formatConcatFunction in interface Dialect
      Parameters:
      operands - the string expressions to concatenate
      Returns:
      the 'concat' function for a specific SQL dialect.
    • getDataType

      public Optional<String> getDataType(DataType dataType)
      Description copied from interface: Dialect
      Returns the data type for a specific SQL dialect.
      Specified by:
      getDataType in interface Dialect
      Parameters:
      dataType - the ISO data type
      Returns:
      the data type for a specific SQL dialect.
    • supports

      public boolean supports(Capability capability)
      Description copied from interface: Dialect
      Indicates whether a capability is supported by a specific SQL dialect.
      Specified by:
      supports in interface Dialect
      Parameters:
      capability - the capability to check support for
      Returns:
      true if specified capability is supported; else false
    • withLegacyRowLimiting

      public OracleDialect withLegacyRowLimiting()
      Enables emulating OFFSET and LIMIT constructs for older Oracle versions. Row offset and limit clauses are supported from Oracle 12c onwards. Invoke this method when using previous versions of Oracle, to simulate these clauses with subqueries.
      Returns:
      the modified dialect.