Class OracleSqlDialect


  • public class OracleSqlDialect
    extends SqlDialect
    A SqlDialect implementation for the Oracle database.
    • Field Detail

      • ORACLE_TYPE_SYSTEM

        private static final RelDataTypeSystem ORACLE_TYPE_SYSTEM
        OracleDB type system.
    • Constructor Detail

      • OracleSqlDialect

        public OracleSqlDialect​(SqlDialect.Context context)
        Creates an OracleSqlDialect.
    • Method Detail

      • supportsCharSet

        public boolean supportsCharSet()
        Description copied from class: SqlDialect
        Returns whether the dialect supports character set names as part of a data type, for instance VARCHAR(30) CHARACTER SET `ISO-8859-1`.
        Overrides:
        supportsCharSet in class SqlDialect
      • supportsAliasedValues

        public boolean supportsAliasedValues()
        Description copied from class: SqlDialect
        Returns whether the dialect supports VALUES in a sub-query with and an "AS t(column, ...)" values to define column names.

        Currently, only Oracle does not. For this, we generate "SELECT v0 AS c0, v1 AS c1 ... UNION ALL ...". We may need to refactor this method when we support VALUES for other dialects.

        Overrides:
        supportsAliasedValues in class SqlDialect
      • getSingleRowTableName

        public java.util.List<java.lang.String> getSingleRowTableName()
        Description copied from class: SqlDialect
        Returns the name of the system table that has precisely one row. If there is no such table, returns null, and we will generate SELECT with no FROM clause.

        For VALUES 1, Oracle returns ["DUAL"] and we generate "SELECT 1 FROM DUAL"; MySQL returns null and we generate "SELECT 1".

        Overrides:
        getSingleRowTableName in class SqlDialect