Class OracleExecutionFactory


  • @Translator(name="oracle",
                description="A translator for Oracle 9i Database or later")
    public class OracleExecutionFactory
    extends JDBCExecutionFactory
    • Constructor Detail

      • OracleExecutionFactory

        public OracleExecutionFactory()
    • Method Detail

      • start

        public void start()
                   throws org.teiid.translator.TranslatorException
        Overrides:
        start in class JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • initCapabilities

        public void initCapabilities​(Connection connection)
                              throws org.teiid.translator.TranslatorException
        Overrides:
        initCapabilities in class JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • handleInsertSequences

        public void handleInsertSequences​(org.teiid.language.Insert insert)
                                   throws org.teiid.translator.TranslatorException
        Throws:
        org.teiid.translator.TranslatorException
      • translateCommand

        public List<?> translateCommand​(org.teiid.language.Command command,
                                        org.teiid.translator.ExecutionContext context)
        Description copied from class: JDBCExecutionFactory
        Return a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation.
        Overrides:
        translateCommand in class JDBCExecutionFactory
        Returns:
        a list of translated parts
      • useAsInGroupAlias

        public boolean useAsInGroupAlias()
        Description copied from class: JDBCExecutionFactory
        Indicates whether group alias should be of the form "...FROM groupA AS X" or "...FROM groupA X". Certain data sources (such as Oracle) may not support the first form.
        Overrides:
        useAsInGroupAlias in class JDBCExecutionFactory
        Returns:
        boolean
      • getSourceComment

        public String getSourceComment​(org.teiid.translator.ExecutionContext context,
                                       org.teiid.language.Command command)
        Description copied from class: JDBCExecutionFactory
        Returns the source comment for the given command
        Overrides:
        getSourceComment in class JDBCExecutionFactory
        Returns:
        the comment
      • replaceElementName

        public String replaceElementName​(String group,
                                         String element)
        Don't fully qualify elements if table = DUAL or element = ROWNUM or special stuff is packed into name in source value.
        Overrides:
        replaceElementName in class JDBCExecutionFactory
        Returns:
        thre replacement name
        Since:
        5.0
      • hasTimeType

        public boolean hasTimeType()
        Description copied from class: JDBCExecutionFactory
        Return false to indicate that time support should be emulated with timestamps.
        Overrides:
        hasTimeType in class JDBCExecutionFactory
        Returns:
        true if database has a time type
      • supportsOrderByNullOrdering

        public boolean supportsOrderByNullOrdering()
        Overrides:
        supportsOrderByNullOrdering in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsFunctionsInGroupBy

        public boolean supportsFunctionsInGroupBy()
        Overrides:
        supportsFunctionsInGroupBy in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsRowLimit

        public boolean supportsRowLimit()
        Overrides:
        supportsRowLimit in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsRowOffset

        public boolean supportsRowOffset()
        Overrides:
        supportsRowOffset in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsExcept

        public boolean supportsExcept()
        Overrides:
        supportsExcept in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsIntersect

        public boolean supportsIntersect()
        Overrides:
        supportsIntersect in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsAggregatesEnhancedNumeric

        public boolean supportsAggregatesEnhancedNumeric()
        Overrides:
        supportsAggregatesEnhancedNumeric in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsElementaryOlapOperations

        public boolean supportsElementaryOlapOperations()
        Overrides:
        supportsElementaryOlapOperations in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsLikeRegex

        public boolean supportsLikeRegex()
        Overrides:
        supportsLikeRegex in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • setOracleSuppliedDriver

        public void setOracleSuppliedDriver​(boolean oracleNative)
      • isOracleSuppliedDriver

        @TranslatorProperty(display="Oracle Supplied Driver",
                            description="True if the driver is an Oracle supplied driver",
                            advanced=true)
        public boolean isOracleSuppliedDriver()
      • supportsOnlyFormatLiterals

        public boolean supportsOnlyFormatLiterals()
        Overrides:
        supportsOnlyFormatLiterals in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsFormatLiteral

        public boolean supportsFormatLiteral​(String literal,
                                             org.teiid.translator.ExecutionFactory.Format format)
        Overrides:
        supportsFormatLiteral in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsArrayType

        public boolean supportsArrayType()
        Overrides:
        supportsArrayType in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsCommonTableExpressions

        public boolean supportsCommonTableExpressions()
        Overrides:
        supportsCommonTableExpressions in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsRecursiveCommonTableExpressions

        public boolean supportsRecursiveCommonTableExpressions()
        Overrides:
        supportsRecursiveCommonTableExpressions in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsGeneratedKeys

        protected boolean supportsGeneratedKeys​(org.teiid.translator.ExecutionContext context,
                                                org.teiid.language.Command command)
        Overrides:
        supportsGeneratedKeys in class JDBCExecutionFactory
        Returns:
        true if generated keys can be returned
      • supportsSelectWithoutFrom

        public boolean supportsSelectWithoutFrom()
        Overrides:
        supportsSelectWithoutFrom in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsGroupByRollup

        public boolean supportsGroupByRollup()
        Overrides:
        supportsGroupByRollup in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • translateGeometrySelect

        public org.teiid.language.Expression translateGeometrySelect​(org.teiid.language.Expression expr)
        Description copied from class: JDBCExecutionFactory
        Translate GEOMETRY column reference into an expression that will return WKB and possibly the SRID.
        Overrides:
        translateGeometrySelect in class JDBCExecutionFactory
        Returns:
      • supportsCorrelatedSubqueryLimit

        public boolean supportsCorrelatedSubqueryLimit()
        Overrides:
        supportsCorrelatedSubqueryLimit in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • translateLiteralBinaryType

        public String translateLiteralBinaryType​(org.teiid.core.types.BinaryType obj)
        Description copied from class: JDBCExecutionFactory
        Subclasses should override this method to provide a different sql translation of the literal varbinary value. By default, a varbinary literal is represented as: X'hex value'
        Overrides:
        translateLiteralBinaryType in class JDBCExecutionFactory
        Parameters:
        obj - value, never null
        Returns:
        Translated string
      • supportsSubqueryInOn

        public boolean supportsSubqueryInOn()
        Overrides:
        supportsSubqueryInOn in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsConvert

        public boolean supportsConvert​(int fromType,
                                       int toType)
        Overrides:
        supportsConvert in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsSelectExpressionArrayType

        public boolean supportsSelectExpressionArrayType()
        Overrides:
        supportsSelectExpressionArrayType in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • translate

        public List<?> translate​(org.teiid.language.LanguageObject obj,
                                 org.teiid.translator.ExecutionContext context)
        Description copied from class: JDBCExecutionFactory
        Return a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation. Override with care.
        Overrides:
        translate in class JDBCExecutionFactory
        Returns:
        list of translated parts
      • useUnicodePrefix

        public boolean useUnicodePrefix()
        Overrides:
        useUnicodePrefix in class JDBCExecutionFactory
        Returns:
        true if the N prefix an N* type binding should be used for strings containing non-ascii characters
      • isNonAsciiFunction

        protected boolean isNonAsciiFunction​(org.teiid.language.Function f)
        Overrides:
        isNonAsciiFunction in class JDBCExecutionFactory
        Returns:
        true if the function is a conversion function to a non-ascii string type An implementation is not required if no such function exists, or the source can handle unicode string using the standard types.
      • isExtendedAscii

        public boolean isExtendedAscii()
        Overrides:
        isExtendedAscii in class JDBCExecutionFactory
        Returns:
        true if the database code page includes extended characters values in the 128-255 range
      • useNBindingType

        public boolean useNBindingType()
        Overrides:
        useNBindingType in class JDBCExecutionFactory
        Returns:
        true if an N type (NVARCHAR, NCLOB) should be used when a non-ascii value is encountered
      • supportsOnlyTimestampAddLiteral

        public boolean supportsOnlyTimestampAddLiteral()
        Overrides:
        supportsOnlyTimestampAddLiteral in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsWindowFunctionNthValue

        public boolean supportsWindowFunctionNthValue()
        Overrides:
        supportsWindowFunctionNthValue in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>