當前位置:首頁 » 辦公資訊 » xml文件怎樣導入oracle

xml文件怎樣導入oracle

發布時間: 2023-02-12 01:12:39

❶ 使用存儲過程把XML文件插入oracle資料庫

這要看xml數據的結構,和你設置的表結構了;

給一個僅供參考的方法吧!

步驟一:用excel打卡xml數據文件,另存為csv文件

步驟二:在plsql中使用text imporer(或者用sqlloader也行)

❷ oracle資料庫中怎麼把xml文檔內的數據導入啊

學習Oracle架構應當掌握的知識 1、物理結構(由控制文件、數據文件、重做日誌文件、參數文件、歸檔文件、口令文件組成)一個資料庫中的數據存儲在磁碟上物理文件,被使用時,調入內存。其中控制文件、數據文件、重做日誌文件、跟蹤文件及警告日誌(trace files,alert files)屬於資料庫文件;參數文件(parameter file)口令文件(password file)是非資料庫文件1.1數據文件:存儲數據的文件.數據文件典型地代表了根據他們使用的磁碟空間和數量所決定的一個Oracle資料庫的容積。由於性能原因,每一種類型的數據放在相應的一個或一系列文件中,將這些文件放在不同的磁碟中。```` http://www.huohuli.com/shi/content.aspx?ID=5264

❸ 一個web版的xml文件,怎麼將xml文件的內容轉存到oracle資料庫中,語言是C#,在線等,跪求!!!

1 讀入文件內容,將xxx,xxx,xxx的格式保存到某個字元串變數,
2 用Stringstoken將這些變數轉換成數組保存.
3 XML的文件讀寫一般都用dom4j來實現,用dom4j將數組中的內容按照你所需要的格式生成xml文件,給那個方法調用即可.

DOM4J的一個例子.
import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

❹ 如何使用sqlloader導入xml文件到Oracle資料庫

在Oracle表數據和xml文件間相互導入導出的PL/SQL過程
學校里要求做個題,題目要求是寫出將已知格式xml文件中的數據導入Oracle資料庫、把資料庫中的數據導出成xml文件的過程。
已知格式xml文件如下:

<?xmlversion="1.0"?>
<PEOPLE>
<PERSONPERSONID="E01">
<NAME>TonyBlair</NAME>
<ADDRESS>10DowningStreet,London,UK</ADDRESS>
<TEL>(061)98765</TEL><FAX>(061)98768</FAX>
<EMAIL>[email protected]</EMAIL>
</PERSON>
<PERSONPERSONID="E02">
<NAME>BillClinton</NAME>
<ADDRESS>WhiteHouse,USA</ADDRESS>
<TEL>(001)640098765</TEL><FAX>(001)640098769</FAX>
<EMAIL>[email protected]</EMAIL>
</PERSON>
<PERSONPERSONID="E03">
<NAME>TomCruise</NAME>
<ADDRESS>57JumboStreet,NewYork,USA</ADDRESS>
<TEL>(001)450067859</TEL><FAX>(001)450067895</FAX>
<EMAIL>[email protected]</EMAIL>
</PERSON>
<PERSONPERSONID="E04">
<NAME>LindaGoodman</NAME>
<ADDRESS>78CraxLane,London,UK</ADDRESS>
<TEL>(061)5456789</TEL><FAX>(061)5456772</FAX>
<EMAIL>[email protected]</EMAIL>
</PERSON>
</PEOPLE>

於是寫出過程如下:
--建表
CREATETABLEPEOPLE
(
PERSONIDVARCHAR2(10)PRIMARYKEY,
NAMEVARCHAR2(20),
ADDRESSVARCHAR2(60),
TELVARCHAR2(20),
FAXVARCHAR2(20),
EMAILVARCHAR2(40)
);
--從xml文件載入數據保存到資料庫的過程
createorreplaceprocerexml2db(xmlfilevarchar2)as
pxmlparser.Parser;
docxmldom.DOMDocument;
nxmldom.DOMNode;
nlxmldom.DOMNodeList;
lennumber;
--根據PERSON結點生成插入SQL語句的過程
functioninsertsql(nodexmldom.DOMNode)returnvarchar2
is
nxmldom.DOMNode;
nlxmldom.DOMNodeList;
lennumber;
nnmxmldom.DOMNamedNodeMap;
isqlvarchar2(200);
begin
--取得PERSON結點所有屬性
nnm:=xmldom.getAttributes(node);
isql:='insertintopeoplevalues(';
isql:=isql||'''';
--取得所有屬性中的第一個屬性,即"PERSONID",並拼接到SQL語句中
isql:=isql||xmldom.getNodeValue(xmldom.item(nnm,0));
isql:=isql||'''';
--取得PERSON結點下的所有結點,准備遍歷
nl:=xmldom.getChildNodes(node);
len:=xmldom.getLength(nl);
foriin0..len-1loop
--取出第i個結點
n:=xmldom.item(nl,i);
isql:=isql||',';
isql:=isql||'''';
--將結點的文本值取出並拼接到SQL語句中
isql:=isql||xmldom.getNodeValue(xmldom.getFirstChild(n));
isql:=isql||'''';
endloop;
isql:=isql||')';
returnisql;
endinsertsql;
begin
p:=xmlparser.newParser;
xmlparser.parse(p,xmlfile);
--轉換xml文件成DOM對像
doc:=xmlparser.getDocument(p);
xmlparser.freeParser(p);
--取出所有PERSON元素
nl:=xmldom.getElementsByTagName(doc,'PERSON');
len:=xmldom.getLength(nl);
--清空people表的內容
deletefrompeople;
foriin0..len-1loop
--取出第i個PERSON元素
n:=xmldom.item(nl,i);
--執行插入該PERSON元素所用的SQL語句
executeimmediateinsertsql(n);
endloop;
commit;
xmldom.freeDocument(doc);
endxml2db;
/
--將資料庫中的數據導出成xml文件的過程
createorreplaceproceredb2xml(xmlfilevarchar2)as
docxmldom.DOMDocument;
retxmldom.DOMNode;
peoplenodexmldom.DOMNode;
--遍歷整個people表的游標
-------------
--將people表中一行記錄轉換為元素
--並插入到DOM文檔對像根結點PEOPLE下的過程
procereaddperson(docxmldom.DOMDocument,peoplexmldom.DOMNode,
v_pidvarchar2,v_namevarchar2,v_addrvarchar2,
v_telvarchar2,v_faxvarchar2,v_emailvarchar2)
is
personelemxmldom.DOMElement;
personnodexmldom.DOMNode;
itemelemxmldom.DOMElement;
itemnodexmldom.DOMNode;
textxmldom.DOMText;
begin
--創建PERSON結點
personelem:=xmldom.createElement(doc,'PERSON');
--設置PERSONID屬性
xmldom.setAttribute(personelem,'PERSONID',v_pid);
personnode:=xmldom.appendChild(peoplenode,xmldom.makeNode(personelem));
--向PERSON結點中添加NAME元素
itemelem:=xmldom.createElement(doc,'NAME');
--將NAME結點添加到PERSON結點中
itemnode:=xmldom.appendChild(personnode,xmldom.makeNode(itemelem));
--創建文本結點
text:=xmldom.createTextNode(doc,v_name);
--將文本結點添加到NAME結點下,以構成完整NAME元素
itemnode:=xmldom.appendChild(itemnode,xmldom.makeNode(text));
--向PERSON結點中添加ADDRESS元素
itemelem:=xmldom.createElement(doc,'ADDRESS');
itemnode:=xmldom.appendChild(personnode,xmldom.makeNode(itemelem));
text:=xmldom.createTextNode(doc,v_addr);
itemnode:=xmldom.appendChild(itemnode,xmldom.makeNode(text));
--向PERSON結點中添加TEL元素
itemelem:=xmldom.createElement(doc,'TEL');
itemnode:=xmldom.appendChild(personnode,xmldom.makeNode(itemelem));
text:=xmldom.createTextNode(doc,v_tel);
itemnode:=xmldom.appendChild(itemnode,xmldom.makeNode(text));
--向PERSON結點中添加FAX元素
itemelem:=xmldom.createElement(doc,'FAX');
itemnode:=xmldom.appendChild(personnode,xmldom.makeNode(itemelem));
text:=xmldom.createTextNode(doc,v_fax);
itemnode:=xmldom.appendChild(itemnode,xmldom.makeNode(text));
--向PERSON結點中添加EMAIL元素
itemelem:=xmldom.createElement(doc,'EMAIL');
itemnode:=xmldom.appendChild(personnode,xmldom.makeNode(itemelem));
text:=xmldom.createTextNode(doc,v_email);
itemnode:=xmldom.appendChild(itemnode,xmldom.makeNode(text));
endaddperson;
begin
--創建一個新DOM文檔對像
doc:=xmldom.newDOMDocument;
--為文檔添加根結點PEOPLE
peoplenode:=xmldom.makeNode(xmldom.createElement(doc,'PEOPLE'));
ret:=xmldom.appendChild(xmldom.makeNode(doc),peoplenode);
--使用游標遍歷people中的每行,生成每一行對應的PERSON元素並添加到PEOPLE根結點中
forv_rowincur_peopleloop
addperson(doc,peoplenode,v_row.personid,v_row.name,
v_row.address,v_row.tel,v_row.fax,v_row.email);
endloop;
--將結果寫入指定文件
xmldom.writeToFile(doc,xmlfile);
xmldom.freeDocument(doc);
enddb2xml;
熱點內容
馬路上汽車的噪音在多少分貝 發布:2023-08-31 22:08:23 瀏覽:1889
應孕棒多少錢一盒 發布:2023-08-31 22:08:21 瀏覽:1363
標准養老金一年能領多少錢 發布:2023-08-31 22:05:05 瀏覽:1648
湖北通城接網線多少錢一個月 發布:2023-08-31 21:59:51 瀏覽:1728
開隨車吊車多少錢一個月 發布:2023-08-31 21:55:06 瀏覽:1489
京東付尾款怎麼知道前多少名 發布:2023-08-31 21:52:58 瀏覽:1813
在學校租鋪面一個月要多少錢 發布:2023-08-31 21:52:09 瀏覽:1952
2寸有多少厘米 發布:2023-08-31 21:50:34 瀏覽:1596
知道電壓如何算一小時多少電 發布:2023-08-31 21:46:20 瀏覽:1577
金手鐲54號圈周長是多少厘米 發布:2023-08-31 21:44:28 瀏覽:1750