oracle8.1.6
select case when exists (select 1
from acs_object_types t
where t.dynamic_p = 't'
and t.object_type = :object_type)
then 1 else 0 end
from dual
select upper(nvl(attr.table_name,t.table_name)) as attr_table_name,
upper(nvl(attr.column_name, attr.attribute_name)) as attr_column_name,
attr.ancestor_type, attr.min_n_values, attr.default_value
from acs_object_type_attributes attr,
(select t.object_type, t.table_name, level as type_level
from acs_object_types t
start with t.object_type = :object_type
connect by prior t.supertype = t.object_type) t
where attr.ancestor_type = t.object_type
and attr.object_type = :object_type
order by t.type_level
select t.object_type
from acs_object_types t
where t.dynamic_p = 't'
start with t.object_type = :object_type
connect by prior t.object_type = t.supertype
select case when exists (select 1
from user_objects
where status = 'INVALID'
and object_name = upper(:package_name)
and object_type = upper(:type))
then 0 else 1 end
from dual
select t.object_type as ancestor_type
from acs_object_types t
start with t.object_type = :object_type
connect by prior t.supertype = t.object_type
select t.object_type as sub_type
from acs_object_types t
start with t.object_type = :object_type
connect by prior t.object_type = t.supertype
select acs_object.name(:user_id) as author,
sysdate as creation_date
from dual
select acs_object.name(:user_id) as author,
sysdate as creation_date
from dual
select a.attribute_id,
nvl(a.table_name, t.table_name) as table_name,
nvl(a.column_name, a.attribute_name) as attribute_name,
a.pretty_name,
a.datatype,
case when a.min_n_values = 0 then 'f' else 't' end as required_p,
a.default_value,
t.table_name as object_type_table_name,
t.id_column as object_type_id_column
from acs_object_type_attributes a,
(select t.object_type, t.table_name, t.id_column, 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 t.object_type = a.ancestor_type $storage_clause
order by type_level
select cols.table_name, cols.column_name
from user_tab_columns cols,
(select upper(t.table_name) as table_name
from acs_object_types t
start with t.object_type = :object_type
connect by prior t.supertype = t.object_type) t
where cols.column_name in
(select args.argument_name
from user_arguments args
where args.position > 0
and args.object_name = upper(:object_name)
and args.package_name = upper(:package_name))
and cols.table_name = t.table_name
BEGIN
:1 := ${package_name}.new([plsql_utility::generate_attribute_parameter_call \
-prepend ":" \
-indent [expr [string length $package_name] + 29] \
$pieces]
);
END;
create or replace package body ${package_name}
as
[package_insert_default_comment]
function new (
[plsql_utility::generate_attribute_parameters $attribute_list]
) return ${table_name}.${id_column}%TYPE
is
v_$id_column ${table_name}.${id_column}%TYPE;
begin
v_$id_column := ${supertype_package_name}.new (
[plsql_utility::generate_attribute_parameter_call_from_attributes \
-prepend "new." \
-indent 21 \
$supertype_attr_list]
);
insert into ${table_name}
($id_column[plsql_utility::generate_attribute_dml -ignore [list $id_column] $table_name $attribute_list])
values
(v_$id_column[plsql_utility::generate_attribute_dml -prepend "new." -ignore [list $id_column] $table_name $attribute_list]);
return v_$id_column;
end new;
procedure delete (
$id_column in ${table_name}.${id_column}%TYPE
)
is
begin
${supertype_package_name}.delete( $package_name.delete.$id_column );
end delete;
end ${package_name};
create or replace package $package_name as
[package_insert_default_comment]
function new (
[plsql_utility::generate_attribute_parameters [package_create_attribute_list \
-supertype $supertype \
-object_name "NEW" \
-table $table_name \
-column $id_column \
$object_type]]
) return ${table_name}.${id_column}%TYPE;
procedure delete (
$id_column in ${table_name}.${id_column}%TYPE
);
END ${package_name};
sysdate
sysdate