Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to Insert data from an XML file into an Oracle 10g table

534022Sep 15 2006 — edited Nov 22 2007
Hello,

Please can you help me as I have hit a brick wall with this problem.

We are running version 10g Oracle and we will start receiving XML files with employee data that needs loading into a table, this is the XML file:

<?xml version="1.0"?>

<RECRUITS>

<RECRUIT>

<FIRST_NAME>Gordon</FIRST_NAME>

<LAST_NAME>Brown</LAST_NAME>

<SHORT_NAME>GORDONBROWN</SHORT_NAME>

<APP_NO>00002</APP_NO>

<STATUS>M</STATUS>

<DATE_FROM>21-JUL-2006</DATE_FROM>

<RESOURCE_TYPE>P</RESOURCE_TYPE>

<TITLE>Mr</TITLE>

<DATE_OF_BIRTH>28-DEC-1983</DATE_OF_BIRTH>

<SOCIAL_SEC>AB128456A</SOCIAL_SEC>

<PARTTIME_PCT>1</PARTTIME_PCT>

<SEX>M</SEX>

<ADDRESS_TYPE>1</ADDRESS_TYPE>

<ADDRESS>A HOUSE SOMEWHERE HERE</ADDRESS>

<ZIP_CODE>PE3 LLL</ZIP_CODE>

<PLACE>BOROUGH</PLACE>

<COUNTRY_CODE>UK</COUNTRY_CODE>

<PROVINCE>UK</PROVINCE>

<EMAIL>GBROWN@MADEUP.COM</EMAIL>

</RECRUIT>

(FYI - there may be more than 1 employee in each file so all of the above will be repeated X amount of times)

</RECRUITS>

To make things simple we have created a table which mirrors the XML file completely to load the data into, the SQL i have used is thus:

CREATE TABLE RECRUITMENT
(
FIRST_NAME VARCHAR2(30),
LAST_NAME VARCHAR2(30),
SHORT_NAME VARCHAR2(30),
APP_NO NUMBER,
STATUS VARCHAR2(1),
DATE_FROM DATE,
RESOURCE_TYPE VARCHAR2(1),
TITLE VARCHAR2(4),
DATE_OF_BIRTH DATE,
SOCIAL_SEC VARCHAR2(9),
PARTTIME_PCT NUMBER,
SEX VARCHAR2(1),
ADDRESS_TYPE VARCHAR2(1),
ADDRESS VARCHAR2(30),
ZIP_CODE VARCHAR2(8),
PLACE VARCHAR2(10),
PROVINCE VARCHAR2(3),
EMAIL VARCHAR2(20)
);

Every method we try from the numerous documents and so called "user guides" have failed, please can somebody show me the PL/SQL i need to get this files data into the above table?

We need to be able to do this purely through SQL*PLUS as we hope - if we ever get it working manually to create a procuedure that will encapsulate everything so it can be run over and over again.

The XML file is sitting in the XMLDIR and is called REC.XML.

Please help : (
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 20 2007
Added on Sep 15 2006
2 comments
9,744 views