PURPOSE
-------
간단한 xml 문서를 PLSQL을 이용해서 database 에
저장하고 PLSQL parser 를 이용해 validate 하는 방법을
예제를 통해 알아 봅니다.
Example
-------
Step1
-----
xml 문서를 저장할 table 을 생성합니다.
CREATE TABLE xml_doc (
docname VARCHAR2(100) PRIMARY KEY,
doc CLOB,
insertdate DATE DEFAULT SYSDATE);
Step 2
------
XML 문서는 os 의 physical directory 에 있으므로 oracle database
에 logical directory 를 만들어 mapping 시켜주어야 합니다.
SQL> CREATE DIRECTORY xmldocs AS `C:XML`;
만일 ORA-1031 에러가 발생할 경우 SYS 또는 SYSTEM user 로 접속해서
다음 명령으로 권한을 줍니다.
SQL> grant create any directory to scott;
Grant succeeded.
Step 3
------
database 에 넣을 XML 문서를 만듭니다.
7844
Manager
100000
100
President
200000
위에서 만든 emp.xml 파일을 db 에 insert 할 PLSQL procedure 를 생성합니다.
CREATE OR REPLACE PROCEDURE insertXML (dirname IN VARCHAR2,
filename IN VARCHAR2)
IS
xmlfile BFILE;
myclob CLOB;
BEGIN
INSERT INTO xml_doc (docname, doc)
VALUES (filename, empty_clob())
RETURNING doc into myclob;
-- get a handle to the xml file on the OS
xmlfile := Bfilename(dirname,filename);
-- open the file
DBMS_LOB.fileOpen(xmlfile);
-- copy the contents of the file into the empty clob
DBMS_LOB.loadFromFile(myclob, xmlfile, dbms_lob.getLength(xmlfile));
END insertXML;
/
Execute the Procedure
SQL> EXEC insertXML(`XMLDOCS`, `emp.xml`);
PL/SQL procedure successfully completed.
Step 4
------
insert 된 data 를 확인해 봅니다.
SQL> select * from xml_doc;
DOCNAME DOC INSERTDATE
--------------- ---------------------------------------- ---------------
emp.xml
27-OCT-00
7844
-------
간단한 xml 문서를 PLSQL을 이용해서 database 에
저장하고 PLSQL parser 를 이용해 validate 하는 방법을
예제를 통해 알아 봅니다.
Example
-------
Step1
-----
xml 문서를 저장할 table 을 생성합니다.
CREATE TABLE xml_doc (
docname VARCHAR2(100) PRIMARY KEY,
doc CLOB,
insertdate DATE DEFAULT SYSDATE);
Step 2
------
XML 문서는 os 의 physical directory 에 있으므로 oracle database
에 logical directory 를 만들어 mapping 시켜주어야 합니다.
SQL> CREATE DIRECTORY xmldocs AS `C:XML`;
만일 ORA-1031 에러가 발생할 경우 SYS 또는 SYSTEM user 로 접속해서
다음 명령으로 권한을 줍니다.
SQL> grant create any directory to scott;
Grant succeeded.
Step 3
------
database 에 넣을 XML 문서를 만듭니다.
위에서 만든 emp.xml 파일을 db 에 insert 할 PLSQL procedure 를 생성합니다.
CREATE OR REPLACE PROCEDURE insertXML (dirname IN VARCHAR2,
filename IN VARCHAR2)
IS
xmlfile BFILE;
myclob CLOB;
BEGIN
INSERT INTO xml_doc (docname, doc)
VALUES (filename, empty_clob())
RETURNING doc into myclob;
-- get a handle to the xml file on the OS
xmlfile := Bfilename(dirname,filename);
-- open the file
DBMS_LOB.fileOpen(xmlfile);
-- copy the contents of the file into the empty clob
DBMS_LOB.loadFromFile(myclob, xmlfile, dbms_lob.getLength(xmlfile));
END insertXML;
/
Execute the Procedure
SQL> EXEC insertXML(`XMLDOCS`, `emp.xml`);
PL/SQL procedure successfully completed.
Step 4
------
insert 된 data 를 확인해 봅니다.
SQL> select * from xml_doc;
DOCNAME DOC INSERTDATE
--------------- ---------------------------------------- ---------------
emp.xml
27-OCT-00
'프로그래밍 > DB' 카테고리의 다른 글
[펌]DATE의 기간을 계산하는 방법 (0) | 2008.01.09 |
---|---|
[펌]문자 유형(한글/영문)을 판단하는 PL/SQL FUNCTION (0) | 2008.01.09 |
[펌] mysql start & shutdown (0) | 2007.11.27 |
[펌] 계정 생성 및 권한부여 (0) | 2007.11.27 |
직렬화된 객체를 Oracle BLOB에 저장하기 (0) | 2007.11.27 |