1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
create or replace TYPE LOCK_OBJECT AS OBJECT (TABLENAME VARCHAR2(30), id NUMBER(19,0))
create or replace TYPE NUM_ARRAY AS TABLE OF NUMBER(19,0);
create or replace TYPE LOCK_OBJECT_ARRAY AS TABLE OF LOCK_OBJECT
Est ce possible de créer une fonction qui prend en paramètre un type et qui retourn un type
exemple :
CREATE OR REPLACE FUNCTION gui_lock_objects
(
p_locked_objects IN lock_object_array
,p_user_id IN NUMBER(19,0)
)
RETURN num_array
AS
global_version_array num_array := num_array();
CURSOR cu_objs IS
SELECT *
FROM p_locked_objects;
BEGIN
FOR rc_obj IN cu_objs
LOOP
INSERT
INTO st_lockobjectopp_2(internalkey, tablename, classid, userid, acquired, sessionauditid)
VALUES(1, rc_obj.tablename, rc_obj.id, p_user_id, sysdate(), sys_context('userenv', 'SESSIONID'));
EXECUTE IMMEDIATE 'select version from ' || rc_obj.tablename || ' where internalkey = ' || rc_obj.id
INTO global_version;
global_version_array.extend;
global_version_array(global_version_array.COUNT) := global_version;
END LOOP;
COMMIT;
RETURN global_version_array;
-- dbms_lock.sleep(5);
END gui_lock_objects; |
Partager