Class Oracle8Platform

    • Field Detail

      • usesLocatorForLOBWrite

        protected boolean usesLocatorForLOBWrite
        Locator is required for Oracle thin driver to write LOB value exceeds the limits
      • lobValueLimits

        protected int lobValueLimits
        The LOB value limits when the Locator is required for the writing
    • Constructor Detail

      • Oracle8Platform

        public Oracle8Platform()
    • Method Detail

      • shouldUseCustomModifyForCall

        public boolean shouldUseCustomModifyForCall​(DatabaseField field)
        INTERNAL Used by SQLCall.appendModify(..) If the field should be passed to customModifyInDatabaseCall, retun true, otherwise false. Methods shouldCustomModifyInDatabaseCall and customModifyInDatabaseCall should be kept in sync: shouldCustomModifyInDatabaseCall should return true if and only if the field is handled by customModifyInDatabaseCall.
        Specified by:
        shouldUseCustomModifyForCall in interface Platform
        Overrides:
        shouldUseCustomModifyForCall in class DatabasePlatform
      • lobValueExceedsLimit

        protected boolean lobValueExceedsLimit​(Object value)
        INTERNAL: Return if the LOB value size is larger than the limit, i.e. 4k.
      • getConnection

        public Connection getConnection​(AbstractSession session,
                                        Connection connection)
        INTERNAL: This method is used to unwrap the oracle connection wrapped by the application server. TopLink needs this unwrapped connection for certain Oracle Specific support. (ie TIMESTAMPTZ, LOB) This is added as a workaround for bug 4565190
        Overrides:
        getConnection in class DatabasePlatform
      • getCustomModifyValueForCall

        public Object getCustomModifyValueForCall​(Call call,
                                                  Object value,
                                                  DatabaseField field,
                                                  boolean shouldBind)
        INTERNAL Used by SQLCall.translate(..) Typically there is no field translation (and this is default implementation). However on different platforms (Oracle) there are cases such that the values for binding and appending may be different (BLOB, CLOB). In these special cases the method returns a wrapper object which knows whether it should be bound or appended and knows how to do that.
        Specified by:
        getCustomModifyValueForCall in interface Platform
        Overrides:
        getCustomModifyValueForCall in class DatabasePlatform
      • isBlob

        protected boolean isBlob​(Class type)
        INTERNAL: Used in writeLOB method only to identify a BLOB
      • isClob

        protected boolean isClob​(Class type)
        INTERNAL: Used in writeLOB method only to identify a CLOB
      • setShouldUseLocatorForLOBWrite

        public void setShouldUseLocatorForLOBWrite​(boolean usesLocatorForLOBWrite)
        PUBLIC: Set if the locator is required for the LOB write. The default is true. For Oracle thin driver, the locator is recommended for large size ( >4k for Oracle8, >5.9K for Oracle9) BLOB/CLOB value write.
      • shouldUseLocatorForLOBWrite

        public boolean shouldUseLocatorForLOBWrite()
        PUBLIC: Return if the locator is required for the LOB write. The default is true. For Oracle thin driver, the locator is recommended for large size ( >4k for Oracle8, >5.9K for Oracle9) BLOB/CLOB value write.
      • getLobValueLimits

        public int getLobValueLimits()
        PUBLIC: Return the BLOB/CLOB value limits on thin driver. The default value is 0. If usesLocatorForLOBWrite is true, locator will be used in case the lob's size is larger than lobValueLimit.
      • setLobValueLimits

        public void setLobValueLimits​(int lobValueLimits)
        PUBLIC: Set the BLOB/CLOB value limits on thin driver. The default value is 0. If usesLocatorForLOBWrite is true, locator will be used in case the lob's size is larger than lobValueLimit.