|
-
RE: Help about DML inside SELECTs
m1l,
Thanks for your hints! I tried using a PROCEDURE with a OUT parameter, but I can't realize where the value will go...
The original code is just below...
---
CREATE OR REPLACE PROCEDURE addNode
(
p_namv IN VARCHAR2,
p_desv IN VARCHAR2,
p_parv IN VARCHAR2,
p_lnkv IN VARCHAR2,
p_nhsv IN VARCHAR2,
p_ordv IN VARCHAR2,
p_frv IN OUT NUMBER,
p_idv IN OUT NUMBER
) IS
BEGIN
p_idv := 0;
SELECT first INTO p_frv FROM nodes WHERE id = p_parv;
IF SQL%FOUND THEN
SELECT nodes_id_seq.NEXTVAL INTO p_idv FROM DUAL;
IF( p_parv = 0 ) THEN
p_frv := p_idv;
END IF;
IF( p_idv > 0 ) THEN
INSERT INTO nodes VALUES (p_namv, p_desv, p_frv, p_parv, p_idv, p_ordv);
INSERT INTO nodesAttribs VALUES( p_idv, 'NUMHDS', p_nhsv);
INSERT INTO nodesAttribs VALUES( p_idv, 'LINK', p_lnkv);
END IF;
END IF;
RETURN p_idv;
END;
/
---
As you can see, the INSERTs are not allowed. How people use to work around this situation? I have an alternative plan, which is first get some values and then insert them. But I'd rather do it in one piece...
---
Roberto S Nakai
NZ Technology
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|