㈠ XML数据文件怎么导入到Oracle数据库中
1.准备数据:在excel中构造出需要的数据
2.将excel中的数据另存为文本文件(有制表符分隔的)
3.将新保存到文本文件中的数据导入到pl*sql中
在pl*sql中选择tools--text importer,在出现的窗口中选择Data from Textfile,然后再选择Open data file,
在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data from textfile中显示将要导入的数据!
㈡ oracle数据库怎么创建XML方案
在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:
SQL> DECLARE
result CLOB;
xmlstr VARCHAR2(32767);
line VARCHAR2(2000);
line_no INTEGER :=1;
BEGIN
result :=DBMS_XMLQUERY.getXml('select empno,empname from employee');
xmlstr :=DBMS_LOB.SUBSTR(result,32767);
LOOP
EXIT WHEN xmlstr IS NULL;
line :=SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10)-1));
DBMS_OUTPUT.PUT_LINE(line_no || ':' || line);
xmlstr :=SUBSTR(xmlstr,INSTR(xmlstr,CHR(10)+1));
line_no :=line_no + 1;
END LOOP;
END;
在上面的例子中我们声明了一个CLOB数据类型的result变量,以及VARCHAR2类型的xmlstr和line两个变量。其中,getXml函数用于将查询结果转换为XML格式,SUBSTR函数检索子字符串,32767值指定要从CLOB数据类型读取的最大字节数。检索到的字符串存储xmlstr变量中。LOOP块循环执行,每次从xmlstr中读取一行。INSTR函数返回一个字符串在另一个字符串首次出现的位置。在此,该函数返回换行符在字符串中的位置,直到遇到下一行。
大家觉得例子的结果能不能读出我们预期的结果呢?试试就知道了!!!
结果如下:
< ?xml version='1.0'?>
< ROWSET>
< ROW num="1">
< EMPNO>E001</EMPNO>
< EMPNAME>Jane</EMPNAME>
< /ROW>
<ROW num="2">
< EMPNO>E002</EMPNO>
< EMPNAME>John</EMPNAME>
< /ROW>
< ROW num="3">
< EMPNO>E003</EMPNO>
< EMPNAME>Joe</EMPNAME>
< /ROW>
< /ROWSET>
㈢ java 服务器端扫描文件夹下xml文件,并导入到Oracle数据库
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class CreateXMLForEnterServelet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
//获取传递过来的值
String databaseType = request.getParameter("select");
String userName = request.getParameter("userName");
String userPassword = request.getParameter("userPassword");
String dbName = request.getParameter("dbName");
String dbSouse = request.getParameter("dbSouces");
int port = Integer.parseInt(request.getParameter("portNum"));
Document doc;
Element root;
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
String path = request.getRealPath("/");
File file = new File( path + "/" + "DBInfo.xml");
if(!file.exists())
{
doc = db.newDocument();
root = doc.createElement("DBInfo");
doc.appendChild(root);
}
else
{
doc = db.parse(file);
root = doc.getDocumentElement();
}
//添加子节点
Element rowNode = doc.createElement(databaseType);
root.appendChild(rowNode);
Node node = doc.createElement("Driver");
Node nodestr = doc.createElement("ConnectString");
Node serverName = doc.createElement("ServerName");
Node nodeName = doc.createElement("UserName");
Node nodePWD = doc.createElement("PassWord");
Node nodePort = doc.createElement("Port");
Node nodeDB = doc.createElement("DataBase");
rowNode.appendChild(node);
rowNode.appendChild(nodestr);
rowNode.appendChild(serverName);
rowNode.appendChild(nodeDB);
rowNode.appendChild(nodeName);
rowNode.appendChild(nodePWD);
rowNode.appendChild(nodePort);
String nodeValue;//Driver
String nodeConStr;//连接字符串
if(databaseType.equals("ORACLE"))
{
nodeValue = "oracle.jdbc.driver.OracleDriver";
nodeConStr = "jdbc:oracle:thin";
}
else
{
nodeValue = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
nodeConStr = "jdbc:microsoft:sqlserver";
}
Text text = doc.createTextNode(nodeValue);
Text textstr = doc.createTextNode(nodeConStr);
Text textName = doc.createTextNode(userName);
Text textPWD = doc.createTextNode(userPassword);
Text textServer = doc.createTextNode(dbName);
Text textPort = doc.createTextNode(String.valueOf(port));
Text textDB = doc.createTextNode(dbSouse);
node.appendChild(text);
nodestr.appendChild(textstr);
nodeName.appendChild(textName);
nodePWD.appendChild(textPWD);
serverName.appendChild(textServer);
nodePort.appendChild(textPort);
nodeDB.appendChild(textDB);
DOMSource doms = new DOMSource(doc);
StreamResult sr = null;
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
sr = new StreamResult(file);
tf.transform(doms,sr);
out.println("<h1>Create XMLFile Is Ok!!</h1>");
request.getRequestDispatcher("index.jsp").forward(request,response);
}
catch(Exception ex)
{
out.println("<h1>生成 XML 配置文件时出现错误:</h1><br/><h4>"+ex+"</h4>");
out.println("<br/><br/>");
out.print("<a href='index.jsp'>【点这里回到首页】</a>");
}
out.close();
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
}
㈣ oracle12c在xml里面怎么配置地址
定义一个环境变量(我的电脑-->属性-->高级属性-->高级-->环境变量里面新建):TNS_ADMIN=D:Oracleproct12.2.0dbhome_1 etworkadmin
这是我的21c的admin路径,就可以使用PL/SQL Developer 12
㈤ XML配置好了之后(连接的Oracle),怎么得到数据库数据
这个自己定义一个事务就行了。
咱们一般平时开发的时候,可能很少定义事务。
经常使用默认的SQLCA,这个SQLCA都是 你连接的主数据库,同样的,你在定义一个transaction,连接的参数,参照SQLCA的参数,把参数都设置成另一个数据库,就可以了。
㈥ 如何将xml文件导入oralce数据库
在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程 学校里要求做个题,题目要求是写出将已知格式xml文件中的数据导入Oracle数据库、把数据库中的数据导出成xml文件的过程。
㈦ 使用SSH框架的Hibernate 配置的hbm.xml文件中连接oracle数据库
hbm.xml一般是配置持久化对象的,一张表对应一个hbm.xml文件。
oracle链接配置可以配置在
hibernate.cfg.xml中
<propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<propertyname="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
<propertyname="connection.username">test</property>
<propertyname="connection.password">test</property>
或者是将这些配置项放到配置文件中,由spring统一来读取。
㈧ 如何在windows系统上安装Oracle数据库
一、客户端不支持版本号为6.1的Windows7操作系统
当前任何版本的Oracle客户端在任何版本的Windows7上都无法正常完成安装,主要是因为Oracle安装程序先决条件里的操作系统版本不符合,但是这个问题可以通过修改Oracle安装源文件里的refhost.xml配置文件来解决。
首先我们要去Oracle官方网站nbsp;下载MicrosoftWindows版本的32位或者64位Oracle安装包,关于Oracle下载请参阅笔者的另一篇文章《Oracle11g安装心得》。然后在解压好的文件夹中找到refhost.xml文件(位置:database\stage\prereq\db,可以使用计算机的搜索功能),打开refhost.xml配置文件并找到节点,接着在节点后面添加以下内容并保存即可:
二、没有将MicrosoftLoopBackAdapter配置为系统的主网络适配器
1.在Windows7下打开控制面板,点击“硬件和声音”选项;
2.在“设备和打印机”组单击“设备管理器”选项;
3.在Windows7系统的设备管理器,也就是设备管理器的首节点(也就是电脑的计算机名)上右键选择“添加过时硬件”以打开“添加硬件”向导;
4.选择“下一步”继续;
5.Windows7系统需手动选择要添加的硬件;
6.选择要安装的硬件类型:网络适配器;
7、在选择网络适配器面板的左侧选择厂商为Microsoft,右边会列出相关适配器类型,选择MicrosoftLoopBackAdapter(Microsoft回环适配器),一路下一步就可以了。
㈨ 使用存储过程把XML文件插入oracle数据库
这要看xml数据的结构,和你设置的表结构了;
给一个仅供参考的方法吧!
步骤一:用excel打卡xml数据文件,另存为csv文件
步骤二:在plsql中使用text imporer(或者用sqlloader也行)
㈩ 如何使用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;