postgresql7.1
declare
v_archive_id integer;
v_archive_desc_id integer;
v_live_archive_desc_id integer;
v_id integer;
v_name cr_items.name%TYPE;
v_archive_name cr_items.name%TYPE;
begin
v_name := 'Download Archive Desc for ' || :archive_id;
v_archive_desc_id := content_item__new (
v_name, -- name
:repository_id, -- parent_id
:archive_desc_id, -- item_id
null, -- locale
now(), -- creation_date
:user_id, -- creation_user
:repository_id, -- context_id
:creation_ip, -- creation_ip
'content_item', -- item_subtype
'cr_download_archive_desc', -- content_type
:summary, -- title
:description, -- description
:description_format, -- mime_type
null, -- nls_language
null, -- text
null, -- data
null, -- relation_tag
'f', -- is_live
'file', -- storage_type
:package_id -- package_id
);
-- get the latest revision
select into v_live_archive_desc_id
content_item__get_latest_revision (v_archive_desc_id);
-- make it live
select into v_id
content_item__set_live_revision ( v_live_archive_desc_id );
insert into download_archive_descs
(archive_desc_id)
values
(v_live_archive_desc_id);
v_archive_id := content_item__new(
varchar :archive_name, -- name
:repository_id, -- parent_id
:archive_id, -- item_id
null, -- locale
now(), -- creation_date
:user_id, -- creation_user
:repository_id, -- context_id
:creation_ip, -- creation_ip
'content_item', -- item_subtype
'cr_download_archive', -- content_type
null, -- title
null, -- description
'text/plain', -- mime_type
null, -- nls_language
null, -- text
null, -- data
null, -- relation_tag
'f', -- is_live
'file', -- storage_type
:package_id -- package_id
);
-- get the latest revision
select into v_id
content_item__get_latest_revision (v_archive_id);
-- make it live
select into v_id
content_item__set_live_revision ( v_id );
insert into download_archives
(archive_id, archive_type_id, archive_desc_id)
values
(v_archive_id, :archive_type_id, v_live_archive_desc_id);
return 0;
end;