The following lines contain the word 'select', 'insert', 'update' or 'delete':
select object_id,object_type_id into oid,typeid from bism_objects where folder_id = fid and object_name = newstr and user_visible = 'Y';
procedure delete_folder(fid raw,myid raw)
is
ret varchar2(1);
for i in (select object_id,object_name from bism_objects where object_type_id = 100 and user_visible = 'Y' start with object_id = fid connect by folder_id = prior object_id)
loop
ret := check_del_access_for_folder(i.object_id,myid);
delete from bism_objects where object_id = fid and object_type_id = 100 and user_visible = 'Y';
end delete_folder;
procedure delete_folder(fid raw,path varchar2,myid raw)
is
ret varchar2(1);
for i in (select object_id,object_name from bism_objects where object_type_id = 100 and user_visible = 'Y' start with object_id = oid connect by folder_id = prior object_id)
loop
ret := check_del_access_for_folder(i.object_id,myid);
delete from bism_objects where object_id = oid and object_type_id = 100 and user_visible = 'Y';
end delete_folder;
for i in (select object_id from bism_objects where folder_id = fid and user_visible = 'Y')
loop
ret := check_obj_del_access(i.object_id,fid,myid);
procedure delete_object(fid raw,objname varchar2,myid raw)
is
typeid bism_objects.object_type_id%type;
select object_type_id,object_id into typeid,oid from bism_objects where folder_id = fid and object_name = objname and user_visible='Y';
delete from bism_objects where folder_id = fid and object_name = objname and user_visible= 'Y';
end delete_object;
select PRIVILEGE_ID into p from bism_privileges where PRIVILEGE_ID = priv;
select subject_id into sub_id from bism_subjects where subject_name = grantee_name;
insert into bism_permissions (subject_id,object_id,privilege) values(sub_id,fid,priv);
procedure delete_folder_wo_security(fid raw,myid raw)
is
begin
delete from bism_objects where object_id = fid and object_type_id = 100 and user_visible = 'Y';
select object_id into oid from bism_objects where object_id = fid;
select object_id,object_type_id into oid,typeid from bism_objects where folder_id = fid and object_name = oname and user_visible='Y';
delete from bism_aggregates where container_id = oid;
delete from bism_objects where container_id = oid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_name into foldername from bism_objects where object_id = fid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_id into oid from bism_objects where object_id = fid;
select object_id,object_type_id into oid,typeid from bism_objects where folder_id = fid and object_name = oname and user_visible='Y';
delete from bism_aggregates where container_id = oid;
delete from bism_objects where container_id = oid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_name into foldername from bism_objects where object_id = fid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_id into oid from bism_objects where folder_id = fid and object_name = newstr and object_type_id = 100 and user_visible = 'Y';
select object_id,object_type_id into oid,typeid from bism_objects where folder_id = parentid and object_name = oname and user_visible='Y';
delete from bism_aggregates where container_id = oid;
delete from bism_objects where container_id = oid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_id,object_type_id into oid,typeid from bism_objects where folder_id = parentid and object_name = oname and user_visible='Y';
delete from bism_aggregates where container_id = oid;
delete from bism_objects where container_id = oid;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select sys_guid() into tempid from dual;
select sysdate into current_time from dual;
select object_type_id,object_id into type_id,oid from bism_objects where folder_id = fid and object_name = objname and user_visible = 'Y';
select USER_VISIBLE,OBJECT_TYPE_ID,VERSION,TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,
CONTAINER_ID,FOLDER_ID,
decode(CREATED_BY,CREATED_BY,(select subject_name from bism_subjects where subject_id = created_by and subject_type='u'),null),
decode(LAST_MODIFIED_BY,LAST_MODIFIED_BY,(select subject_name from bism_subjects where subject_id = LAST_MODIFIED_BY and subject_type='u'), null),
OBJECT_NAME,TITLE,APPLICATION,DATABASE,
DESCRIPTION,KEYWORDS,APPLICATION_SUBTYPE1,COMP_SUBTYPE1,COMP_SUBTYPE2,COMP_SUBTYPE3,TIME_DATE_LAST_ACCESSED
from bism_objects
where 'y' = bism_core.check_get_attrs_access(p_fid,p_objname,p_myid)
and user_visible = 'Y'
and folder_id = p_fid
and object_name = p_objname;
select object_type_id into type_id from bism_objects where folder_id = fid and object_name = objname and user_visible = 'Y';
select subject_id into v_subid from bism_subjects where subject_name = p_username and subject_type='u';
select nvl(max(privilege),0) into v_priv from bism_permissions where object_id = p_oid and subject_id in (select group_id from bism_groups where user_id = v_subid);
select decode(t1.subject_id, t1.subject_id,
(select subject_name from bism_subjects where subject_id = t1.subject_id),
null),
t1.privilege,
t2.subject_type
from bism_permissions t1,
bism_subjects t2
where 'y' = bism_access_control.check_show_entries_access(p_oid,p_myid)
and t1.object_id = p_oid
and t2.subject_id = t1.subject_id;
select 'y' into v_var from dual where tgtfid = any ( select object_id from bism_objects where object_type_id = 100 start with object_id = srcfid connect by folder_id = prior object_id);
select object_id,object_type_id into objid,objtypeid from bism_objects where object_id = tgtfid and user_visible = 'Y';
select object_id,object_type_id into objid,objtypeid from bism_objects where folder_id = srcfid and object_name = objname and user_visible = 'Y';
select max(privilege) into priv from bism_permissions where
object_id = topfolderid and subject_id in
(
select group_id from bism_groups where user_id = myid
);
select object_name into foldername from bism_objects where object_id = srcfid;
select max(privilege) into priv from bism_permissions where
object_id = srcfid and subject_id in
(
select group_id from bism_groups where user_id = myid
);
select object_name into foldername from bism_objects where object_id = srcfid;
select max(privilege) into priv from bism_permissions where
object_id = tgtfid and subject_id in
(
select group_id from bism_groups where user_id = myid
);
select object_name into foldername from bism_objects where object_id = tgtfid;
for i in (select object_id from bism_objects where object_type_id=100 start with object_id = srcfid connect by folder_id = prior object_id) loop
priv := 0;
select max(privilege) into priv from bism_permissions where
object_id = i.object_id and subject_id in
(
select group_id from bism_groups where user_id = myid
);
update bism_objects set folder_id = tgtfid,last_modified_by = myid where object_id = srcfid;
select max(privilege) into priv from bism_permissions where object_id = objid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into foldername from bism_objects where object_id = objid;
select max(privilege) into priv from bism_permissions where object_id = srcfid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into foldername from bism_objects where object_id = srcfid;
select max(privilege) into priv from bism_permissions where object_id = tgtfid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into foldername from bism_objects where object_id = tgtfid;
for i in (select object_id from bism_objects start with object_id = objid connect by container_id = prior object_id)
loop
update bism_objects set folder_id = tgtfid,last_modified_by = myid where bism_objects.object_id = i.object_id;
for i in (select object_id from bism_objects where object_type_id=100 start with object_id = srcfid connect by folder_id = prior object_id) loop
priv := 0;
select max(privilege) into priv from bism_permissions where
object_id = i.object_id and subject_id in
(
select group_id from bism_groups where user_id = myid
);
select max(privilege) into priv from bism_permissions where
object_id = tgtfid and subject_id in
(
select group_id from bism_groups where user_id = myid
);
select object_name into foldername from bism_objects where object_id = tgtfid;
insert into BISM_OBJECTS
(USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,LAST_MODIFIED_BY,
OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, sysdate,sysdate,newguid,utl_raw.cast_to_raw('0'),tgtfid,myid,myid,destobjname, TITLE,
APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,
TIME_DATE_LAST_ACCESSED
from bism_objects
where object_id = srcfid;
insert into bism_objects
(USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,LAST_MODIFIED_BY,
OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, sysdate,sysdate,newguid,utl_raw.cast_to_raw('0'),tgtfid,myid,myid,object_name, TITLE, APPLICATION,
DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED
from bism_objects
where object_id = srcfid ;
for i in (select object_id,object_type_id,object_name from bism_objects where folder_id = srcfid and user_visible='Y') loop
if i.object_type_id = 100 then
copy_folder(i.object_id,new_target_folder,null,myid,copytype,false);
select object_id,object_type_id into objid,objtypeid from bism_objects where object_id = tgtfid;
select object_id,object_type_id into objid,objtypeid from bism_objects where folder_id = srcfid and object_name = srcobjname and user_visible = 'Y';
select object_id into toplevelobjid from bism_objects where folder_id = srcfid and object_name = srcobjname and user_visible = 'Y';
select max(privilege) into priv from bism_permissions where object_id = toplevelobjid and subject_id in (select group_id from bism_groups where user_id = myid);
select max(privilege) into priv from bism_permissions where object_id = srcfid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into foldername from bism_objects where object_id = srcfid;
select max(privilege) into priv from bism_permissions where object_id = tgtfid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into foldername from bism_objects where object_id = tgtfid;
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES
into uv, oti, ver, ttl, app, db, dsc, kwds, xml, as1, cs1, cs2, cs3, ext
from bism_objects
where object_id =toplevelobjid;
insert into bism_objects (USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,LAST_MODIFIED_BY,
OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED) values
(uv, oti, ver, sysdate,sysdate,newguid,utl_raw.cast_to_raw('0'),tgtfid,myid,myid,destobjname, ttl, app, db, dsc, kwds, xml, as1, cs1, cs2, cs3, ext, sysdate);
select aggregate_info into agginfo from bism_aggregates where container_id = utl_raw.cast_to_raw('0') and containee_id = toplevelobjid;
insert into bism_aggregates (CONTAINER_ID, CONTAINEE_ID, AGGREGATE_INFO) values (utl_raw.cast_to_raw('0'),newguid,agginfo);
for i in (select containee_id,aggregate_info from bism_aggregates where container_id = oldparentid) loop
select user_visible into user_visible_var from bism_objects where object_id = i.containee_id;
insert into bism_aggregates (CONTAINER_ID, CONTAINEE_ID, AGGREGATE_INFO) values (newparentid,i.containee_id,i.aggregate_info);
insert into bism_objects
(USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1,
COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
select 'N', OBJECT_TYPE_ID, VERSION, sysdate,sysdate,newguid,newparentid,tgtfid,myid,myid,anon_obj_name, TITLE, APPLICATION,
DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED from bism_objects where object_id = i.containee_id ;
insert into bism_aggregates (CONTAINER_ID, CONTAINEE_ID, AGGREGATE_INFO) values (newparentid,newguid,i.aggregate_info);
insert into bism_objects
(USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1,
COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, sysdate,sysdate,newguid,newparentid,tgtfid,myid,myid,anon_obj_name, TITLE,
APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED from bism_objects where object_id = i.containee_id ;
insert into bism_aggregates (CONTAINER_ID, CONTAINEE_ID, AGGREGATE_INFO) values (newparentid,newguid,i.aggregate_info);
insert into bism_objects
(USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1,
COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, sysdate,sysdate,newguid,newparentid,tgtfid,myid,myid,OBJECT_NAME, TITLE,
APPLICATION, DATABASE, DESCRIPTION,KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2,COMP_SUBTYPE3,
EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED from bism_objects where object_id = i.containee_id ;
insert into bism_aggregates (CONTAINER_ID, CONTAINEE_ID, AGGREGATE_INFO) values (newparentid,newguid,i.aggregate_info);
select object_id,object_type_id,object_name,user_visible into oid,typeid,oname,visible from bism_objects where folder_id = fid and object_name = path(idx).objname and user_visible = 'Y';
select object_id,object_type_id,object_name,user_visible into oid,typeid,oname,visible from bism_objects where folder_id = fid and object_name = newstr and user_visible = 'Y';
select max(privilege) into priv from bism_permissions where object_id = startoid and subject_id in (select group_id from bism_groups where user_id = myid);
for i in( select object_id from bism_objects start with object_id = startoid connect by prior folder_id = object_id and object_id <> stopoid ) loop
select max(privilege) into priv from bism_permissions where object_id = i.object_id and subject_id in (select group_id from bism_groups where user_id = myid);
for j in(select object_name from bism_objects start with object_id = oid connect by prior folder_id = object_id and object_id <> '31' order by level desc) loop
if length(j.object_name) + length(objfullname) <= 2000 then
if isfirst = true then
objfullname := j.object_name ;
open rc for SELECT /*+ NO_MERGE */ T.USER_VISIBLE, T.OBJECT_TYPE_ID, T.VERSION, T.TIME_DATE_CREATED,
T.TIME_DATE_MODIFIED, T.OBJECT_ID,T.FOLDER_ID, T.CREATED_BY,
T.LAST_MODIFIED_BY, T.OBJECT_NAME, T.TITLE, T.APPLICATION, T.DATABASE, T.DESCRIPTION,
T.KEYWORDS, T.XML, T.APPLICATION_SUBTYPE1, T.COMP_SUBTYPE1, T.COMP_SUBTYPE2,T.COMP_SUBTYPE3,TIME_DATE_LAST_ACCESSED,
T.container_id,T.aggregate_info from
(
SELECT /*+ NO_MERGE */ A.USER_VISIBLE, A.OBJECT_TYPE_ID, A.VERSION, A.TIME_DATE_CREATED,
A.TIME_DATE_MODIFIED, A.OBJECT_ID,A.FOLDER_ID, A.CREATED_BY,
A.LAST_MODIFIED_BY, A.OBJECT_NAME, A.TITLE, A.APPLICATION, A.DATABASE, A.DESCRIPTION,
A.KEYWORDS, A.XML, A.APPLICATION_SUBTYPE1, A.COMP_SUBTYPE1, A.COMP_SUBTYPE2,A.COMP_SUBTYPE3,TIME_DATE_LAST_ACCESSED,
T1.container_id,T1.aggregate_info
from bism_objects A,
(
select distinct containee_id,container_id,aggregate_info from bism_aggregates start with containee_id = objid and container_id='30' connect by container_id = prior containee_id
)
T1
where A.object_id=T1.containee_id
)
T ;
select USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED, TIME_DATE_MODIFIED,
OBJECT_ID, CONTAINER_ID, FOLDER_ID,
decode(CREATED_BY, CREATED_BY,
(select subject_name from bism_subjects where subject_id = CREATED_BY and subject_type='u'),
null),
decode(LAST_MODIFIED_BY, LAST_MODIFIED_BY,
(select subject_name from bism_subjects where subject_id = LAST_MODIFIED_BY and subject_type='u'),
null),
OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION, KEYWORDS, XML,
APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2, COMP_SUBTYPE3,
decode(USER_VISIBLE,'Y',bism_core.get_object_full_name(object_id),'') FULLNAME
from bism_objects where
-- folder does not have aggregate info
object_id = oid and
-- apply security check
-- technically speaking we dont need this because
-- user already had access that's how he could call getObject()
-- call check_lookup_access instead of check_read_access (done previously)
-- check_lookup_access now calls check_list_access if the obj type is 100
-- else calls check_read_access
-- Henry and Yekesa decided to put in this change to allow users with
-- LIST access on a folder to be able to see the folder attribs (i.e
-- LIST access should allow user to load the folder object)
'y'=bism_core.check_lookup_access(oid,'100','y',myid);
select T1.USER_VISIBLE, T1.OBJECT_TYPE_ID, T1.VERSION, T1.TIME_DATE_CREATED, T1.TIME_DATE_MODIFIED,
T1.OBJECT_ID, T1.CONTAINER_ID, T1.FOLDER_ID,
decode(T1.CREATED_BY, T1.CREATED_BY,
(select subject_name from bism_subjects where subject_id = T1.CREATED_BY and subject_type='u'),
null),
decode(T1.LAST_MODIFIED_BY, T1.LAST_MODIFIED_BY,
(select subject_name from bism_subjects where subject_id = T1.LAST_MODIFIED_BY and subject_type='u'),
null),
T1.OBJECT_NAME, T1.TITLE, T1.APPLICATION, T1.DATABASE, T1.DESCRIPTION, T1.KEYWORDS, T1.XML,
T1.APPLICATION_SUBTYPE1, T1.COMP_SUBTYPE1, T1.COMP_SUBTYPE2, T1.COMP_SUBTYPE3, T1.TIME_DATE_LAST_ACCESSED, T2.container_id,
T2.containee_id,T2.AGGREGATE_INFO,
decode(T1.USER_VISIBLE,'Y',bism_core.get_object_full_name(object_id),'') FULLNAME
from bism_objects T1, bism_aggregates T2
where
/* make sure it is a visible object*/
1 = (select '1' from bism_objects where object_id = objid and user_visible = 'Y') and
/* fetch the entire hierachry looking up the aggregates table*/
object_id in (
select distinct containee_id
from bism_aggregates
start with containee_id = objid
connect by container_id = prior containee_id
) and T1.object_id = T2.containee_id
--apply security check
/* technically speaking we dont have to check the privilege any more
because th euser would have access to the OID only when could access that object*/
and 'y' = bism_core.check_lookup_access(T1.object_id,T1.object_type_id,T1.user_visible,myid);
select sysdate into current_date from dual;
update bism_objects set TIME_DATE_LAST_ACCESSED = current_date where object_id = objid;
SELECT /*+ NO_MERGE */ T1.USER_VISIBLE, T1.OBJECT_TYPE_ID, T1.VERSION, T1.TIME_DATE_CREATED,
T1.TIME_DATE_MODIFIED, T1.OBJECT_ID, T1.CONTAINER_ID, T1.FOLDER_ID,
decode(T1.CREATED_BY, T1.CREATED_BY,
(select subject_name from bism_subjects where subject_id = T1.CREATED_BY and subject_type='u'),
null),
decode(T1.LAST_MODIFIED_BY, T1.LAST_MODIFIED_BY,
(select subject_name from bism_subjects where subject_id = T1.LAST_MODIFIED_BY and subject_type='u'),
null),
T1.OBJECT_NAME, T1.TITLE, T1.APPLICATION, T1.DATABASE, T1.DESCRIPTION,
T1.KEYWORDS, T1.XML, T1.APPLICATION_SUBTYPE1, T1.COMP_SUBTYPE1, T1.COMP_SUBTYPE2,T1.COMP_SUBTYPE3, T1.TIME_DATE_LAST_ACCESSED,
T2.container_id, T2.containee_id, T2.AGGREGATE_INFO
from (SELECT /*+ NO_MERGE */ USER_VISIBLE, OBJECT_TYPE_ID, VERSION, TIME_DATE_CREATED,
TIME_DATE_MODIFIED, OBJECT_ID, CONTAINER_ID, FOLDER_ID, CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION,
KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1, COMP_SUBTYPE2, COMP_SUBTYPE3, TIME_DATE_LAST_ACCESSED
from bism_objects where object_id in
(select distinct containee_id
from bism_aggregates start with containee_id = cid
connect by container_id = prior containee_id
)
) T1,
(select distinct container_id,containee_id, aggregate_info
from bism_aggregates start with containee_id= cid
connect by container_id = prior containee_id
) T2
where
/* now apply these rules : 1. top level object must be user_visible */
1 = (select '1' from bism_objects where object_id= objid and user_visible = 'Y')
and
/* 2. fetch only the require object hierarchy*/
T1.object_id = T2.containee_id
/*
3. now apply the privileges, we dont care whether it is anony or named because
the privileges are set at the folder level
*/
and
'y' = bism_core.check_lookup_access(T1.object_id,T1.object_type_id,T1.user_visible,myid);
SELECT /*+ NO_MERGE */ T.USER_VISIBLE, T.OBJECT_TYPE_ID, T.VERSION, T.TIME_DATE_CREATED,
T.TIME_DATE_MODIFIED, T.OBJECT_ID,T.FOLDER_ID,
decode(T.CREATED_BY,T.CREATED_BY,(select subject_name from bism_subjects where subject_id = T.CREATED_BY and subject_type='u'),null),
decode(T.LAST_MODIFIED_BY,T.LAST_MODIFIED_BY,(select subject_name from bism_subjects where subject_id = T.LAST_MODIFIED_BY and subject_type='u'),null),
T.OBJECT_NAME, T.TITLE, T.APPLICATION, T.DATABASE, T.DESCRIPTION,
T.KEYWORDS, T.XML, T.APPLICATION_SUBTYPE1, T.COMP_SUBTYPE1, T.COMP_SUBTYPE2,T.COMP_SUBTYPE3, T.TIME_DATE_LAST_ACCESSED,
/*1. containee_id is not fetched from bism_aggregates because it is pulling several extra rows
when an object is shared by multiple containers, however containee_id is same as object_id
from bism_objects */
T.container_id,T.aggregate_info,
decode(T.USER_VISIBLE,'Y',bism_core.get_object_full_name(T.OBJECT_ID),'') FULLNAME
from
(
SELECT /*+ NO_MERGE */ A.USER_VISIBLE, A.OBJECT_TYPE_ID, A.VERSION, A.TIME_DATE_CREATED,
/*2. do not fetch container_id from bism_objects use container_id from bism_aggreagtes instead*/
A.TIME_DATE_MODIFIED, A.OBJECT_ID, /*A.CONTAINER_ID, */ A.FOLDER_ID, A.CREATED_BY,
A.LAST_MODIFIED_BY, A.OBJECT_NAME, A.TITLE, A.APPLICATION, A.DATABASE, A.DESCRIPTION,
A.KEYWORDS, A.XML, A.APPLICATION_SUBTYPE1, A.COMP_SUBTYPE1, A.COMP_SUBTYPE2,A.COMP_SUBTYPE3, A.TIME_DATE_LAST_ACCESSED,
T1.container_id,T1.aggregate_info
from bism_objects A,
(
/* 3. distinct is required because there may be diamond relationships in the hierarchy
and if so, we only want to fetch it once */
/* 4. container_id = '30' is important because an object may have multiple containers
in which case we end up fetching those rows as well, which is useless
*/
select distinct containee_id,container_id,aggregate_info from bism_aggregates start with containee_id = cid and container_id='30' connect by container_id = prior containee_id
)
T1
/* 5. fetch only the required object hierarchy */
where A.object_id=T1.containee_id
)
T
/* 6. the foll. security check is not needed, because lookuphelper the function that was
called before this stmt gets executed has indeed checked for lookup_access
but dropping this check does not seem to improve perf. so I am leaving it in
for now */
where
'y' = bism_core.check_lookup_access(T.object_id, T.object_type_id, T.user_visible, myid);
select sysdate into current_date from dual;
-- update last_loaded time for each
update bism_objects set TIME_DATE_LAST_ACCESSED = current_date where object_id=ids_array(i);
update bism_objects set object_name = newobjname ,
time_date_modified = sysdate ,
last_modified_by = myid
where folder_id = fid and user_visible = 'Y' and object_name = objname ;
select object_name,object_type_id
from bism_objects
where folder_id = p_fid and
user_visible = 'Y' and
'y' = bism_access_control.check_list_access(p_fid,p_subid);
select object_id into oid from bism_objects where folder_id='30' and object_name= 'ROOT' and user_visible = 'Y';
select subject_id into subid from bism_subjects where subject_name = p_subname and subject_type= 'u';
select nvl(max(privilege),0) into priv from bism_permissions where object_id = '31' and subject_id in (select group_id from bism_groups where user_id = subid );
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type = 'u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type = 'u';
insert into BISM_OBJECTS
(USER_VISIBLE, OBJECT_TYPE_ID,VERSION, TIME_DATE_CREATED, TIME_DATE_MODIFIED, OBJECT_ID, CONTAINER_ID, FOLDER_ID, CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION, KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1,
COMP_SUBTYPE2, COMP_SUBTYPE3, TIME_DATE_LAST_ACCESSED) values ('Y',0100,p_version,timeC,timeM,bism_utils.get_guid,null,
p_fid,created_subid,modified_subid,p_object_name,p_title,p_application,p_database,p_desc,p_keywords,null,p_appsubtype1,
p_compsubtype1,p_compsubtype2,p_compsubtype3, timeC) returning object_id into oid;
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type = 'u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type = 'u';
insert into BISM_OBJECTS
(USER_VISIBLE, OBJECT_TYPE_ID,VERSION, TIME_DATE_CREATED, TIME_DATE_MODIFIED, OBJECT_ID, CONTAINER_ID, FOLDER_ID, CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION, KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1,
COMP_SUBTYPE2, COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED) values ('Y',0100,p_version,timeC,timeM,
oid,null,p_fid,created_subid,modified_subid,p_object_name,p_title,p_application,p_database,p_desc,p_keywords,
null,p_appsubtype1,p_compsubtype1,p_compsubtype2,p_compsubtype3,p_extAttrs,timeC) ;
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type ='u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type = 'u';
insert into BISM_OBJECTS (USER_VISIBLE,OBJECT_TYPE_ID,VERSION,TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,
CREATED_BY,LAST_MODIFIED_BY,OBJECT_NAME,TITLE,APPLICATION,DATABASE,DESCRIPTION,KEYWORDS,XML,
APPLICATION_SUBTYPE1,COMP_SUBTYPE1,COMP_SUBTYPE2,COMP_SUBTYPE3,EXTENSIBLE_ATTRIBUTES,TIME_DATE_LAST_ACCESSED)
values
(p_visible,p_obj_type_id,p_version,p_time_created,p_time_modified,p_oid,p_container_id,p_fid,created_subid,modified_subid,p_obj_name,
p_title,p_application,p_database,p_desc,p_keywords,p_xml,p_appsubtype1,p_compsubtype1,p_compsubtype2,p_compsubtype3,p_ext_attrs,
p_time_last_loaded);
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type ='u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type = 'u';
insert into BISM_OBJECTS (USER_VISIBLE,OBJECT_TYPE_ID,VERSION,TIME_DATE_CREATED,TIME_DATE_MODIFIED,OBJECT_ID,CONTAINER_ID,FOLDER_ID,
CREATED_BY,LAST_MODIFIED_BY,OBJECT_NAME,TITLE,APPLICATION,DATABASE,DESCRIPTION,KEYWORDS,XML,
APPLICATION_SUBTYPE1,COMP_SUBTYPE1,COMP_SUBTYPE2,COMP_SUBTYPE3) values (p_visible,p_obj_type_id,p_version,
p_time_created,p_time_modified,p_oid,p_container_id,p_fid,created_subid,modified_subid,p_obj_name,p_title,
p_application,p_database,p_desc,p_keywords,p_xml,p_appsubtype1,p_compsubtype1,p_compsubtype2,p_compsubtype3);
insert into bism_aggregates (container_id, containee_id, aggregate_info) values (p_container_id,p_containee_id,p_aggregate_info);
open rc for select object_name,object_type_id,object_id from bism_objects where folder_id = p_fid and user_visible = 'Y' and 'y' = bism_access_control.check_list_access(p_fid,p_subid);
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type ='u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type ='u';
update bism_objects
set USER_VISIBLE=p_visible,
OBJECT_TYPE_ID=p_obj_type_id,
VERSION=p_version,
TIME_DATE_CREATED=p_time_created,
TIME_DATE_MODIFIED=p_time_modified,
OBJECT_ID=p_oid,
CONTAINER_ID=p_container_id,
FOLDER_ID=p_fid,
CREATED_BY=created_subid,
LAST_MODIFIED_BY=modified_subid,
OBJECT_NAME=p_obj_name,
TITLE=p_title,
APPLICATION=p_application,
DATABASE=p_database,
DESCRIPTION=p_desc,
KEYWORDS=p_keywords,
XML=p_xml,
APPLICATION_SUBTYPE1=p_appsubtype1,
COMP_SUBTYPE1=p_compsubtype1,
COMP_SUBTYPE2=p_compsubtype2,
COMP_SUBTYPE3=p_compsubtype3,
EXTENSIBLE_ATTRIBUTES=p_ext_attrs,
TIME_DATE_LAST_ACCESSED=p_time_last_loaded
where user_visible = 'Y' and object_id = p_oid;
insert into bism_objects (USER_VISIBLE, OBJECT_TYPE_ID,VERSION, TIME_DATE_CREATED, TIME_DATE_MODIFIED, OBJECT_ID, CONTAINER_ID, FOLDER_ID, CREATED_BY,
LAST_MODIFIED_BY, OBJECT_NAME, TITLE, APPLICATION, DATABASE, DESCRIPTION, KEYWORDS, XML, APPLICATION_SUBTYPE1, COMP_SUBTYPE1,
COMP_SUBTYPE2, COMP_SUBTYPE3, EXTENSIBLE_ATTRIBUTES, TIME_DATE_LAST_ACCESSED)
values
(
p_visible,p_obj_type_id,p_version,p_time_created,p_time_modified,p_oid,
p_container_id,p_fid,created_subid,modified_subid,p_obj_name,p_title,p_application,
p_database,p_desc,p_keywords,p_xml,p_appsubtype1,p_compsubtype1,p_compsubtype2,p_compsubtype3,
p_ext_attrs,p_time_last_loaded
);
select subject_id into created_subid from bism_subjects where subject_name = p_creator and subject_type ='u';
select subject_id into modified_subid from bism_subjects where subject_name = p_modifier and subject_type ='u';
update bism_objects set USER_VISIBLE=p_visible,OBJECT_TYPE_ID=p_obj_type_id,VERSION=p_version,TIME_DATE_CREATED=p_time_created,
TIME_DATE_MODIFIED=p_time_modified,OBJECT_ID=p_oid,CONTAINER_ID=p_container_id,FOLDER_ID=p_fid,
CREATED_BY=created_subid,LAST_MODIFIED_BY=modified_subid,OBJECT_NAME=p_obj_name,TITLE=p_title,
APPLICATION=p_application,DATABASE=p_database,DESCRIPTION=p_desc,KEYWORDS=p_keywords,XML=p_xml,
APPLICATION_SUBTYPE1=p_appsubtype1,COMP_SUBTYPE1=p_compsubtype1,COMP_SUBTYPE2=p_compsubtype2,
COMP_SUBTYPE3=p_compsubtype3 where user_visible = 'Y' and object_id = p_oid;
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = acllist(i).subjname;
insert into bism_subjects (SUBJECT_ID, SUBJECT_NAME, SUBJECT_TYPE) values (newguid,acllist(i).subjname,'u');
insert into bism_groups (USER_ID, GROUP_ID) values(newguid,newguid);
delete from bism_permissions where object_id = oid and subject_id = acllist(i).subjid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(i).subjid,oid,acllist(i).privilege);
for i in (select object_id, object_type_id from bism_objects where folder_id = oid and user_visible = 'Y')
loop
-- remove all existing entries
for j in 1..acllist.count
loop
if acllist(j).subjid is not null then
delete from bism_permissions where object_id = i.object_id and subject_id = acllist(j).subjid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,acllist(j).privilege);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,20);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,acllist(j).privilege);
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y' )
loop
-- ignore the return value dummy because it should be null
-- we only create new user in first level frame
-- (ccchow) always cascade to existing objects in subfolders as well, as in NT
dummy := add_entries(i.object_id,acllist,myid,cascade_to_subfolders,'y','n','y');
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = usrnm;
insert into bism_subjects (SUBJECT_ID, SUBJECT_NAME, SUBJECT_TYPE) values (newguid,usrnm,usrtype);
insert into bism_groups (USER_ID, GROUP_ID) values(newguid,newguid);
select subject_id into sid from bism_subjects where subject_name = usrnm;
delete from bism_permissions where object_id = oid and subject_id = sid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,oid,usrpriv);
for i in (select object_id, object_type_id from bism_objects where folder_id = oid and user_visible = 'Y')
loop
-- remove all existing entries
if sid is not null then
delete from bism_permissions where object_id = i.object_id and subject_id = sid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,usrpriv);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,20);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,usrpriv);
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y' )
loop
add_entries_30(i.object_id,acllist,myid,cascade_to_subfolders,'Y','N','Y',aclseparator);
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = acllist(i).subjname;
delete from bism_permissions where object_id = oid and subject_id = acllist(i).subjid;
select object_id bulk collect into oid_var from bism_objects where folder_id = oid and user_visible = 'Y';
delete from bism_permissions where object_id = oid_var(i) and subject_id = acllist(j).subjid;
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y')
loop
-- ignore the return value childerrormsgs because it should be null
-- we check for errors only when it is a top level folder and that means
-- errormsgs in the top level frame should capture any errors
childerrormsgs := remove_entries(i.object_id,acllist,myid,cascade_to_subfolders,'Y','N','Y');
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = usrnm;
delete from bism_permissions where object_id = oid and subject_id = sid;
select object_id bulk collect into oid_var from bism_objects where folder_id = oid and user_visible = 'Y';
delete from bism_permissions where object_id = oid_var(i) and subject_id = sid;
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y')
loop
-- ignore the return value childerrormsgs because it should be null
-- we check for errors only when it is a top level folder and that means
-- errormsgs in the top level frame should capture any errors
childerrormsgs := remove_entries_30(i.object_id,acllist,myid,cascade_to_subfolders,'Y','N','Y',aclseparator);
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = acllist(i).subjname;
insert into bism_subjects (SUBJECT_ID, SUBJECT_NAME, SUBJECT_TYPE) values (newguid,acllist(i).subjname,'u');
insert into bism_groups (USER_ID, GROUP_ID) values(newguid,newguid);
delete from bism_permissions where object_id = oid and subject_id <> myid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(i).subjid,oid,acllist(i).privilege);
for i in (select object_id, object_type_id from bism_objects where folder_id = oid and user_visible = 'Y')
loop
-- remove all existing entries
delete from bism_permissions where object_id = i.object_id and subject_id <> myid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,acllist(j).privilege);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,20);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(acllist(j).subjid,i.object_id,acllist(j).privilege);
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y' )
loop
-- ignore the return value dummy because it should be null
-- we only create new user in first level frame
-- (ccchow) always cascade to existing objects in subfolders as well, as in NT
dummy := set_entries(i.object_id,acllist,myid,cascade_to_subfolders,'Y','N','Y');
select max(privilege) into grantorpriv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select object_name into objname from bism_objects where object_id = oid;
select subject_id into sid from bism_subjects where subject_name = usrnm;
insert into bism_subjects (SUBJECT_ID, SUBJECT_NAME, SUBJECT_TYPE) values (newguid,usrnm,usrtype);
insert into bism_groups (USER_ID, GROUP_ID) values(newguid,newguid);
select subject_id into sid from bism_subjects where subject_name = usrnm;
delete from bism_permissions where object_id = oid and subject_id <> myid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,oid,usrpriv);
for i in (select object_id, object_type_id from bism_objects where folder_id = oid and user_visible = 'Y')
loop
-- remove all existing entries
if firstTime = true then
delete from bism_permissions where object_id = i.object_id and subject_id <> myid;
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,usrpriv);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,20);
insert into bism_permissions (SUBJECT_ID, OBJECT_ID, PRIVILEGE) values(sid,i.object_id,usrpriv);
for i in (select object_id from bism_objects where folder_id = oid and object_type_id = 100 and user_visible='Y' )
loop
set_entries_30(i.object_id,acllist,myid,cascade_to_subfolders,cascade_to_objs,'N','Y',aclseparator);
select nvl(max(privilege),0) into priv from bism_permissions where object_id = oid and subject_id in (select group_id from bism_groups where user_id = myid);
select /*+ INDEX(BISM_OBJECTS) */ object_name as object_name, object_id as object_id, object_type_id as object_type_id, user_visible as user_visible
from bism_objects
where object_id in
(
select /*+ INDEX(BISM_AGGREGATES) */ container_id from bism_aggregates
where containee_id in
(
select /*+ INDEX(BISM_OBJECTS) */ object_id from bism_objects
where
folder_id = p_fid
and
object_name = p_objname
and 'y' = bism_access_control.check_read_access(object_id, p_fid,'n', p_myid)
)
and container_id <> '30'
)
)
select /*+ INDEX(BISM_OBJECTS) */ bism_core.get_object_full_name(object_id), object_type_id
from bism_objects
where
object_id in ( select object_id from visible_table where user_visible = 'Y' )
union
select /*+ INDEX(BISM_OBJECTS) */ bism_core.get_object_full_name(object_id), object_type_id
from bism_objects
where object_id
in
(
select distinct object_id from bism_objects c
start with object_id
in ( select object_id from visible_table where user_visible = 'N' )
connect by prior container_id = object_id
)
and user_visible ='Y';
procedure update_attribute(a_fid raw,a_obj_name varchar2,a_attr_name varchar2, a_attr_val varchar2, a_sub_id raw)
is
ret varchar2(1) := 'n';
select subject_id into created_subid from bism_subjects
where
subject_name = a_attr_val and subject_type ='u';
EXECUTE IMMEDIATE 'update bism_objects set created_by = :1 where folder_id = :2 and user_visible = :3 and object_name = :4 '
using created_subid,a_fid, v_uv , a_obj_name;
select subject_id into modified_subid from bism_subjects
where
subject_name = a_attr_val and subject_type ='u';
EXECUTE IMMEDIATE 'update bism_objects set last_modified_by = :1
where folder_id = :2 and user_visible = :3 and object_name = :4'
using modified_subid, a_fid, v_uv, a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set last_modified_by = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using a_sub_id,a_fid,v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set '|| a_attr_name||' = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using a_attr_val,a_fid,v_uv,a_obj_name;
end update_attribute;
procedure update_date_attribute(a_fid raw,a_obj_name varchar2,a_attr_name varchar2, a_attr_val date, a_sub_id raw)
is
ret varchar2(1) := 'n';
EXECUTE IMMEDIATE 'update bism_objects set time_date_created = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using a_attr_val,a_fid,v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set time_date_modified = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using a_attr_val,a_fid,v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set time_date_last_accessed = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using a_attr_val,a_fid,v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set time_date_created = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using sysdate, a_fid, v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set time_date_modified = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using sysdate, a_fid, v_uv,a_obj_name;
EXECUTE IMMEDIATE 'update bism_objects set time_date_last_accessed = :1
where folder_id = :2 and user_visible = :3 and object_name = :4 '
using sysdate, a_fid, v_uv,a_obj_name;
end update_date_attribute;
procedure update_attribute(a_fid raw,a_obj_name varchar2,a_ext_attr_xml varchar2, a_sub_id raw)
is
ret varchar2(1) := 'n';
end update_attribute;