Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
у меня есть много xml файлов их надо парсить и данные ложить в таблицы.
как лучше организовать иьпрорт из файлов?
17 апр 07, 00:06    [4028624]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
Штырк

--------------------------------
Вся жизнь - ништяк, все бабы - леди,
а солнце - шар дающий свет.
17 апр 07, 01:51    [4028716]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
делаю так все работает

declare
l_xml SYS.XMLType;
begin
l_xml := SYS.XMLType.createxml('<?xml version="1.0"?>
<EMPLOYEES>
<EMP><EMPNO>7369</EMPNO><ENAME>SMITH</ENAME><JOB>CLERK</JOB><MGR>7902</MGR><HIREDATE>17-DEC-80</HIREDATE><SAL>800</SAL></EMP>
<EMP><EMPNO>7499</EMPNO><ENAME>ALLEN</ENAME><JOB>SALESMAN</JOB><MGR>7698</MGR><HIREDATE>20-FEB-81</HIREDATE><SAL>1600</SAL><COMM>300</COMM></EMP>
<EMP><EMPNO>7521</EMPNO><ENAME>WARD</ENAME><JOB>SALESMAN</JOB><MGR>7698</MGR><HIREDATE>22-FEB-81</HIREDATE><SAL>1250</SAL><COMM>500</COMM></EMP>
<EMP><EMPNO>7566</EMPNO><ENAME>JONES</ENAME><JOB>MANAGER</JOB><MGR>7839</MGR><HIREDATE>02-APR-81</HIREDATE><SAL>2975</SAL></EMP>
<EMP><EMPNO>7654</EMPNO><ENAME>MARTIN</ENAME><JOB>SALESMAN</JOB><MGR>7698</MGR><HIREDATE>28-SEP-81</HIREDATE><SAL>1250</SAL><COMM>1400</COMM></EMP>
<EMP><EMPNO>7698</EMPNO><ENAME>BLAKE</ENAME><JOB>MANAGER</JOB><MGR>7839</MGR><HIREDATE>01-MAY-81</HIREDATE><SAL>2850</SAL></EMP>
<EMP><EMPNO>7782</EMPNO><ENAME>CLARK</ENAME><JOB>MANAGER</JOB><MGR>7839</MGR><HIREDATE>09-JUN-81</HIREDATE><SAL>2450</SAL></EMP>
<EMP><EMPNO>7788</EMPNO><ENAME>SCOTT</ENAME><JOB>ANALYST</JOB><MGR>7566</MGR><HIREDATE>19-APR-87</HIREDATE><SAL>3000</SAL></EMP>
<EMP><EMPNO>7839</EMPNO><ENAME>KING</ENAME><JOB>PRESIDENT</JOB><HIREDATE>17-NOV-81</HIREDATE><SAL>5000</SAL></EMP>
<EMP><EMPNO>7844</EMPNO><ENAME>TURNER</ENAME><JOB>SALESMAN</JOB><MGR>7698</MGR><HIREDATE>08-SEP-81</HIREDATE><SAL>1500</SAL><COMM>0</COMM></EMP>
<EMP><EMPNO>7876</EMPNO><ENAME>ADAMS</ENAME><JOB>CLERK</JOB><MGR>7788</MGR><HIREDATE>23-MAY-87</HIREDATE><SAL>1100</SAL></EMP>
<EMP><EMPNO>7900</EMPNO><ENAME>JAMES</ENAME><JOB>CLERK</JOB><MGR>7698</MGR><HIREDATE>03-DEC-81</HIREDATE><SAL>950</SAL></EMP>
<EMP><EMPNO>7902</EMPNO><ENAME>FORD</ENAME><JOB>ANALYST</JOB><MGR>7566</MGR><HIREDATE>03-DEC-81</HIREDATE><SAL>3000</SAL></EMP>
<EMP><EMPNO>7934</EMPNO><ENAME>MILLER</ENAME><JOB>CLERK</JOB><MGR>7782</MGR><HIREDATE>23-JAN-82</HIREDATE><SAL>1300</SAL></EMP>
</EMPLOYEES>');
end;
18 апр 07, 15:46    [4037738]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
ГРУЖУ через файл ошибка

CREATE OR REPLACE DIRECTORY xml_dir AS '/tmp/gold';

--CREATE TABLE xml_tab (
-- id NUMBER(10),
-- filename VARCHAR2(100),
-- xml XMLTYPE
--)
--/

--ALTER TABLE xml_tab ADD (
-- CONSTRAINT xml_tab_pk PRIMARY KEY (id)
--)
--/



declare
p_dir VARCHAR2(200);
p_filename VARCHAR2(200);
l_bfile BFILE;
l_clob CLOB;
l_xml SYS.XMLType;

BEGIN

p_dir:='XML_DIR';
p_filename:='emp.xml';

l_bfile := BFILENAME(p_dir, p_filename);

DBMS_LOB.createtemporary (l_clob, TRUE);

DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);

DBMS_LOB.loadfromfile(l_clob, l_bfile, DBMS_LOB.getlength(l_bfile));
DBMS_LOB.fileclose(l_bfile);

/* INSERT INTO xml_tab (
id,
filename,
xml
)
VALUES (
1,
p_filename,
XMLTYPE.createXML(l_clob)
);
COMMIT;
*/


l_xml := SYS.XMLType.createxml(l_clob);

--'<data>я</data>');

DBMS_LOB.freetemporary (l_clob);


END;
18 апр 07, 15:47    [4037750]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
сбой разбора xml
18 апр 07, 15:49    [4037767]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
я так вроде понял в чем ошибка надо как-то кодировку правильную указать в clob

а как?
18 апр 07, 16:51    [4038282]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
zhmur
Member

Откуда: Severodvinsk
Сообщений: 362
В общем на сайте оракла есть такая вещь как XDB Utilities. Это набор скриптов по работе с XDB. Посмотри там вроде были очень толковые скрипты по загрузке XML.
http://www.oracle.com/technology/sample_code/tech/xml/xmldb/xdbutilities/XMLDB_Utilities_Overview.html

Сообщение было отредактировано: 19 апр 07, 01:13
18 апр 07, 18:52    [4039270]     Ответить | Цитировать Сообщить модератору
 Re: xml залить в таблицу из файла  [new]
BeaRoman
Member

Откуда: Украина г. Киев
Сообщений: 73
ну ты прям настоящий человек!!!!!!!!!!!

да я там нашел при заливке в clob надо указывать кодировку
19 апр 07, 01:11    [4039970]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить