-
a weird logical fault ?
I am trying to receive and parse the following xml, and insert elements into fields in my database.
I am using a function that looks similar to this:
DECLARE
v_counter NUMBER;
v_brukerid varchar2(10);
v_mld_id varchar2(5);
v_xml xmltype;
BEGIN
v_xml := '
meldinger--
user--tom--/user
melding--
id--73--/id
--/melding
melding--
id--74--/id
--/melding
--/meldinger';
IF v_xml.existsnode(v_xmlsti || '/brukerid') = 1 THEN
v_user := fnc_hentverdi (v_xml,'/meldinger/brukerid/text()');
END IF;
v_counter := 1;
while v_xml.existsnode('/meldinger/melding['|| v_counter ||']') = 1 LOOP
v_mld_id := fnc_hentnrverdi (v_xml,'/meldinger/melding/id/text()');
INSERT INTO table1 (field1, field2)
VALUES (v_mld_id, v_brukerid);
v_counter := v_counter + 1;
END IF;
which I would expect to give
table1
-------------
tom 73
tom 74
but it gives as output
table1
-------------
tom 7374
tom 7374
I have done the same routine before, and then it worked fine.
Last edited by Therese Sande; 06-20-2005 at 09:29 AM.
-
how about if you change this:
v_mld_id := fnc_hentnrverdi (v_xml,'/meldinger/melding/id/text()');
to
v_mld_id := fnc_hentnrverdi (v_xml,'/meldinger/melding['|| v_counter ||']/id/text()');
?
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
|