tmp SIMPLE_TYPEE := SIMPLE_TYPE(1, 'a');
β¦
IF tmp.EXISTS(tmp) THEN
You declare tmphow SIMPLE_TYPE, not ObjectList.
SIMPLE_TYPE is a scalar type, not a collection.
You probably want to o.EXISTScheck (what is ObjectList) instead ?
Update:
EXISTS When applied to a collection, it takes an integer index as an argument and checks to see if there is an element with that index (and not its value).
, SIMPLE_TYPE(1, 'a') , :
ObjectList :
CREATE TYPE ObjectList IS TABLE OF SIMPLE_TYPE;
SELECT:
DECLARE
tmp SIMPLE_TYPE := SIMPLE_TYPE(1, 'a');
o ObjectList := new ObjectList(SIMPLE_TYPE(2, 'a'), SIMPLE_TYPE(3, 'a'));
myid INT;
BEGIN
SELECT 1
INTO myid
FROM TABLE(o) q
WHERE SIMPLE_TYPE(q.id, q.name) = tmp
AND rownum = 1;
IF (myid = 1) THEN
dbms_output.put_line('OK, exists.');
END IF;
END;