Bonjour

j'ai créé 3 types dans mon schéma
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;

j'arrive pas à compiler la fonction

Merci pour votre aide

Oracle 10.2.0.2
OS Linux