aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/connection_adapters/oci_adapter.rb11
2 files changed, 7 insertions, 6 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index f5c6f84ae8..e64cebc782 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Oracle: use syntax compatible with Oracle 8. #3131 [Michael Schoen]
+
* MySQL: work around ruby-mysql/mysql-ruby inconsistency with mysql.stat. Eliminate usage of mysql.ping because it doesn't guarantee reconnect. Explicitly close and reopen the connection instead. [Jeremy Kemper]
* Added preliminary support for polymorphic associations [DHH]
diff --git a/activerecord/lib/active_record/connection_adapters/oci_adapter.rb b/activerecord/lib/active_record/connection_adapters/oci_adapter.rb
index 1580dcac85..fa788b99fc 100644
--- a/activerecord/lib/active_record/connection_adapters/oci_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/oci_adapter.rb
@@ -339,11 +339,10 @@ begin
table_cols = %Q{
select column_name, data_type, data_default, nullable,
- case when data_type = 'NUMBER' then data_precision
- when data_type = 'VARCHAR2' then data_length
- else null end as length,
- case when data_type = 'NUMBER' then data_scale
- else null end as scale
+ decode(data_type, 'NUMBER', data_precision,
+ 'VARCHAR2', data_length,
+ null) as length,
+ decode(data_type, 'NUMBER', data_scale, null) as scale
from #{scope}_catalog cat, #{scope}_synonyms syn, all_tab_columns col
where cat.table_name = #{table}
and syn.synonym_name (+)= cat.table_name
@@ -515,7 +514,7 @@ begin
def new_connection(username, password, host)
conn = OCI8.new username, password, host
conn.exec %q{alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'}
- conn.exec %q{alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS'}
+ conn.exec %q{alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS'} rescue nil
conn.autocommit = true
conn
end