Sha256: 780b5abcb97aacda96c4eee7ed53fbcddfd22276ea7bf2699541da7a94770e23

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module ActiveRecord
  module ConnectionAdapters
    module OracleEnhanced
      module OCIQuoting
        def type_cast(value)
          case value
          when ActiveModel::Type::Binary::Data
            lob_value = value == "" ? " " : value
            bind_type = OCI8::BLOB
            ora_value = bind_type.new(_connection.raw_oci_connection, lob_value)
            ora_value.size = 0 if value == ""
            ora_value
          when Type::OracleEnhanced::Text::Data
            lob_value = value.to_s == "" ? " " : value.to_s
            bind_type = OCI8::CLOB
            ora_value = bind_type.new(_connection.raw_oci_connection, lob_value)
            ora_value.size = 0 if value.to_s == ""
            ora_value
          when Type::OracleEnhanced::NationalCharacterText::Data
            lob_value = value.to_s == "" ? " " : value.to_s
            bind_type = OCI8::NCLOB
            ora_value = bind_type.new(_connection.raw_oci_connection, lob_value)
            ora_value.size = 0 if value.to_s == ""
            ora_value
          else
            super
          end
        end
      end
    end
  end
end

module ActiveRecord
  module ConnectionAdapters
    module OracleEnhanced
      module Quoting
        prepend OCIQuoting
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activerecord-oracle_enhanced-adapter-7.1.0 lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb
activerecord-oracle_enhanced-adapter-7.1.0.beta2 lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb
activerecord-oracle_enhanced-adapter-7.1.0.beta1 lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb