待解析的XML
<?xml version="1.0"?>
<PEOPLE>
<PERSON PERSONID="E01">
<NAME>Tony Blair</NAME>
<ADDRESS>10 Downing Street, London, UK</ADDRESS>
</PERSON>
</PEOPLE>存储过程如下
BEGIN
--设置服务器端文件存放路径
--v_FileDir := 'UTL_FILE_DIR'; xmlPar := xmlparser.newParser;
xmlparser.setErrorLog(xmlPar, 'C:\datafile\xmllog.txt');
xmlparser.parse(xmlPar, 'C:\datafile\person.xml');
doc := xmlparser.getDocument(xmlPar);
--释放解析器
xmlparser.freeParser(xmlPar);
--取得根目录
rootNodes := xmldom.getElementsByTagName(doc, 'PERSON');
len := xmldom.getLength(rootNodes);
--遍历根节点
for i in 0 .. len - 1 loop
tempNode := xmldom.item(rootNodes, i);
tempArrMap := xmldom.getAttributes(tempNode);
pid := xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap,
'PERSON'));
chilNodes := xmldom.getChildNodes(tempNode);
tmp := xmldom.getLength(chilNodes);
name := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,0)));
address := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,1)));
INSERT INTO PEOPLE VALUES (pid, name, address);
end loop;
commit;
--释放文档对象
xmldom.freeDocument(doc);
PReturnCode := 'S';
调试到这里时 xmlparser.setErrorLog(xmlPar, 'C:\datafile\xmllog.txt');
报ORA-31020: The operation is not allowed, Reason: Not supported
注释上一句,执行这句时 xmlparser.parse(xmlPar, 'C:\datafile\person.xml');
又报ORA-29280: invalid directory path
到底哪里错误了,是路径设置错了,应该怎么写啊,还是需要哪里设置一下
哪个好心的大哥帮忙解决、解决下
<?xml version="1.0"?>
<PEOPLE>
<PERSON PERSONID="E01">
<NAME>Tony Blair</NAME>
<ADDRESS>10 Downing Street, London, UK</ADDRESS>
</PERSON>
</PEOPLE>存储过程如下
BEGIN
--设置服务器端文件存放路径
--v_FileDir := 'UTL_FILE_DIR'; xmlPar := xmlparser.newParser;
xmlparser.setErrorLog(xmlPar, 'C:\datafile\xmllog.txt');
xmlparser.parse(xmlPar, 'C:\datafile\person.xml');
doc := xmlparser.getDocument(xmlPar);
--释放解析器
xmlparser.freeParser(xmlPar);
--取得根目录
rootNodes := xmldom.getElementsByTagName(doc, 'PERSON');
len := xmldom.getLength(rootNodes);
--遍历根节点
for i in 0 .. len - 1 loop
tempNode := xmldom.item(rootNodes, i);
tempArrMap := xmldom.getAttributes(tempNode);
pid := xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap,
'PERSON'));
chilNodes := xmldom.getChildNodes(tempNode);
tmp := xmldom.getLength(chilNodes);
name := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,0)));
address := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,1)));
INSERT INTO PEOPLE VALUES (pid, name, address);
end loop;
commit;
--释放文档对象
xmldom.freeDocument(doc);
PReturnCode := 'S';
调试到这里时 xmlparser.setErrorLog(xmlPar, 'C:\datafile\xmllog.txt');
报ORA-31020: The operation is not allowed, Reason: Not supported
注释上一句,执行这句时 xmlparser.parse(xmlPar, 'C:\datafile\person.xml');
又报ORA-29280: invalid directory path
到底哪里错误了,是路径设置错了,应该怎么写啊,还是需要哪里设置一下
哪个好心的大哥帮忙解决、解决下
解决方案 »
- dblink影响 执行计划 导致查询很慢,还有很诡异的地方!!
- oracle 视图怎么建主键或者增加个序列都行!!!
- 多数据分组后取日期最近的一条记录?跪求高人!!!!
- oracle的 where 1=1 后面能跟一个 %1$s 吗?是什么意思?
- oracle 10安装出现问题,无法创建脚本?
- 求助!!!建一个触发器,触发条件为EMP
- PLSQL 隐式游标问题
- 帮忙写个sql
- 只有ORACLE的正个目录,有没有办法把数据恢复过来?
- 老问题,但前面解决方法没有可行的:oracle8.05用exp导出的dmp文件不能用imp导入oracle8.16
- 求教 从两个表中做查询的问题 !
- oracle里的查询
要把C:\datafile添加进管理文件夹?
CREATE DIRECTORY XmlDir AS 'C:\datafile';
GRANT WRITE , READ ON DIRECTORY XmlDir TO TEST;
添加权限write和read权限?
我应该怎么改呢?
v_FileDir := 'UTL_FILE_DIR';
xmlparser.setErrorLog(xmlPar, v_FileDir||'\xmllog.txt');
这样改嘛?
好像用起来还是有问题:-(
http://www.oracle-base.com/articles/8i/ParseXMLDocuments8i.php
http://www.blogjava.net/botson/category/30204.html/rss
里面的问题也是我提的,就是那个路径