oracle8.1.6
select case when exists (select 1
from acs_attributes a, acs_object_types t
where t.dynamic_p = 't'
and a.object_type = t.object_type
and a.attribute_id = :value)
then 1 else 0 end
from dual
select case when exists (select 1
from acs_attributes a
where (a.attribute_name = :attribute
or a.column_name = :attribute)
and a.object_type = :object_type)
then 1
else 0
end
from dual
select a.object_type, a.attribute_name,
case when a.storage = 'type_specific' then t.table_name else a.table_name end as table_name,
nvl(a.column_name, a.attribute_name) as column_name
from acs_attributes a, acs_object_types t
where a.attribute_id = :attribute_id
and t.object_type = a.object_type
select nvl(a.column_name, a.attribute_name) as name,
a.pretty_name, a.attribute_id, a.datatype,
v.enum_value, v.pretty_name as value_pretty_name
from acs_object_type_attributes a,
acs_enum_values v,
(select t.object_type, level as type_level
from acs_object_types t
start with t.object_type = :start_with
connect by prior t.object_type = t.supertype) t
where a.object_type = :object_type
and a.attribute_id = v.attribute_id(+)
and t.object_type = a.ancestor_type $storage_clause
order by type_level, a.sort_order
begin acs_attribute.drop_attribute(:object_type, :attribute_name); end;
declare
attr_id acs_attributes.attribute_id%TYPE;
begin
attr_id := acs_attribute.create_attribute (
object_type => '$object_type',
attribute_name => '$attribute_name',
min_n_values => '$min_n_values',
max_n_values => '$max_n_values',
default_value => '$default_value',
datatype => '$datatype',
pretty_name => '$pretty_name',
pretty_plural => '$pretty_plural'
);
end;
alter table $table_name drop column $attribute_name
alter table $table_name add $attribute_name $sql_type
begin acs_attribute.drop_attribute(:object_type, :attribute_name); end;
alter table $table_name drop column $column_name