def columns(table_name, name = nil)
select_all(%Q{
select column_name, data_type, data_default, data_length, data_scale
from user_catalog cat, user_synonyms syn, all_tab_columns col
where cat.table_name = '#{table_name.upcase}'
and syn.synonym_name (+)= cat.table_name
and col.owner = nvl(syn.table_owner, user)
and col.table_name = nvl(syn.table_name, cat.table_name)}
).map do |row|
OCIColumn.new(
oci_downcase(row['column_name']),
row['data_default'],
row['data_length'],
row['data_type'],
row['data_scale']
)
end
end