mirror of
https://github.com/github/rails.git
synced 2026-01-29 08:18:03 -05:00
Add Oracle support for CLOB inserts. Closes #4748. [schoenm@earthlink.net sandra.metz@duke.edu]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4280 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Add Oracle support for CLOB inserts. Closes #4748. [schoenm@earthlink.net sandra.metz@duke.edu]
|
||||
|
||||
* Various fixes for sqlserver_adapter (odbc statement finishing, ado schema dumper, drop index). Closes #4831. [kajism@yahoo.com]
|
||||
|
||||
* Add support for :order option to with_scope. Closes #3887. [eric.daspet@survol.net]
|
||||
|
||||
@@ -58,11 +58,11 @@ begin
|
||||
after_save :write_lobs
|
||||
def write_lobs() #:nodoc:
|
||||
if connection.is_a?(ConnectionAdapters::OracleAdapter)
|
||||
self.class.columns.select { |c| c.type == :binary }.each { |c|
|
||||
self.class.columns.select { |c| c.sql_type =~ /LOB$/i }.each { |c|
|
||||
value = self[c.name]
|
||||
next if value.nil? || (value == '')
|
||||
lob = connection.select_one(
|
||||
"SELECT #{ c.name} FROM #{ self.class.table_name } WHERE #{ self.class.primary_key} = #{quote(id)}",
|
||||
"SELECT #{c.name} FROM #{self.class.table_name} WHERE #{self.class.primary_key} = #{quote(id)}",
|
||||
'Writable Large Object')[c.name]
|
||||
lob.write value
|
||||
}
|
||||
@@ -210,7 +210,7 @@ begin
|
||||
end
|
||||
|
||||
def quote(value, column = nil) #:nodoc:
|
||||
if column && column.type == :binary
|
||||
if column && column.sql_type =~ /LOB$/i
|
||||
%Q{empty_#{ column.sql_type rescue 'blob' }()}
|
||||
else
|
||||
case value
|
||||
|
||||
Reference in New Issue
Block a user