新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Oracle, SQL Server与XML,XML在数据挖掘中的应用, PMML.
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML 与 数据库 』 → 关于xml数据导入oracle的问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14453 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 关于xml数据导入oracle的问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     bxhe 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:59
      门派:XML.ORG.CN
      注册:2006/7/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给bxhe发送一个短消息 把bxhe加入好友 查看bxhe的个人资料 搜索bxhe在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看bxhe的博客楼主
    发贴心情 关于xml数据导入oracle的问题

    本人正在做毕业设计,是建立一个中医药的数据库。我用的dbms是oracle。我先用sybase powerdesigner设计了一个针对oracle的物理数据模型(pdm),然后生成sql脚本,这样我就可以在oracle建立数据库了。我的数据来源是从几个中医药网站,取有用的信息综合出来数据,我想根据我的pdm再设计一个xml结构(文档),然后把从各网站上的数据摘下来填到xml里,然后再(批量)转到oracle里,但是我目前的想法都是停留在思路上的,不知道如何去实现,想请各位高手帮忙出出主意,或给点思路。万分感谢!

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/20 19:58:00
     
     k11 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2006/9/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给k11发送一个短消息 把k11加入好友 查看k11的个人资料 搜索k11在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看k11的博客2
    发贴心情 
    你是手动传数据,还是自动的转数据?手动最简单的办法,把数据拷到EXCEL里面,然后用工具就可以批量的插到ORACLE里面。自动的话,偶也是刚刚才研究XML,偶也不知道!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/13 0:38:00
     
     caizhiheng 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2007/4/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给caizhiheng发送一个短消息 把caizhiheng加入好友 查看caizhiheng的个人资料 搜索caizhiheng在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看caizhiheng的博客3
    发贴心情 小问题嘛!!
    -- 解析 XML people.xml 文件的内容并保存到数据库表 PEOPLE 中
    -- 以 SCOTT 用户登录 ORACLE 系统
    -- 请先根据 xml 文件的内容创建 PEOPLE 表
    --

    set serveroutput on;
    set echo on;

    create or replace procedure xml2table(dir varchar2, inpfile varchar2,
                                          errfile varchar2) is
    -- 参数说明:
    -- dir      基本目录,如 'd:\xml\plsql'
    -- inpfile  输入文件名,不含路径,如 'people.xml'
    -- errfile  错误日志文件,保存解析错误信息, 如 'err.log'

    p xmlparser.parser;
    doc xmldom.DOMDocument;

    -- 读取并处理文档元素
    procedure readElements(doc xmldom.DOMDocument) is
      nl     xmldom.DOMNodeList;
      len    number;
      n      xmldom.DOMNode;
      attn   xmldom.DOMNode;
      nnm    xmldom.DOMNamedNodeMap;
      nl2    xmldom.DOMNodeList;
      len2   number;
      strSQL varchar2(1000);

    begin
       -- 读取 PERSON 元素
       nl := xmldom.getElementsByTagName(doc, 'PERSON');
       len := xmldom.getLength(nl);

       -- 遍历元素
       for i in 0..len-1 loop
          -- 构造动态 SQL 语句
          strSQL := 'INSERT INTO PEOPLE VALUES (';
          n := xmldom.item(nl, i);
          if xmldom.getNodeName(n)='PERSON' then
             nnm := xmldom.getAttributes(n);  -- 读取 PERSONID 属性
             attn := xmldom.item(nnm, 0);
             strSQL := strSQL || '''' || xmldom.getNodeValue(attn) || '''';
          end if;

          -- 读取 PERSON 的子节点
          nl2 := xmldom.getChildNodes(n);
          len2 := xmldom.getLength(nl2);

          -- 处理 NAME, ADDRESS, ... 等节点
          for j in 0..len2-1 loop
             n := xmldom.item(nl2, j);
             strSQL := strSQL || ', ''' || xmldom.getNodeValue(xmldom.getFirstChild(n)) || '''';
          end loop;
          -- 完成 动态 SQL 语句的构造
          strSQL := strSQL || ')';
          -- dbms_output.put_line(strSQL);
          -- 执行插入记录的 SQL 语句
          execute immediate(strSQL);  -- 执行动态 SQL
       end loop;

       commit;  -- 提交插入
       dbms_output.put_line('');
    end readElements;

    begin
    -- 新建解析器实例
       p := xmlparser.newParser;

    -- 设置解析器特性
       xmlparser.setValidationMode(p, FALSE);
    --   xmlparser.setErrorLog(p, dir || '\' || errfile);
       xmlparser.setBaseDir(p, dir);

    -- 解析输入文件
       xmlparser.parse(p, dir || '\' || inpfile);

    -- 获取解析后的文档对象
       doc := xmlparser.getDocument(p);

    -- 读取文档元素
       dbms_output.put_line('读取文档元素并保存到表 PEOPLE 中.');
       readElements(doc);

    -- 释放资源
       xmldom.freeDocument(doc);

    end xml2table;
    /
    show errors;
    -- exec xml2table('d:\xml\plsql', 'people.xml', 'err.log');

    begin
     xml2table('PROJECT_ONE','T31_PEOPLE.XML', 'ERR.log');
    end;

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/11 12:19:00
     
     caizhiheng 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2007/4/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给caizhiheng发送一个短消息 把caizhiheng加入好友 查看caizhiheng的个人资料 搜索caizhiheng在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看caizhiheng的博客4
    发贴心情 小问题嘛!!
    -- 解析 XML people.xml 文件的内容并保存到数据库表 PEOPLE 中
    -- 以 SCOTT 用户登录 ORACLE 系统
    -- 请先根据 xml 文件的内容创建 PEOPLE 表
    --

    set serveroutput on;
    set echo on;

    create or replace procedure xml2table(dir varchar2, inpfile varchar2,
                                          errfile varchar2) is
    -- 参数说明:
    -- dir      基本目录,如 'd:\xml\plsql'
    -- inpfile  输入文件名,不含路径,如 'people.xml'
    -- errfile  错误日志文件,保存解析错误信息, 如 'err.log'

    p xmlparser.parser;
    doc xmldom.DOMDocument;

    -- 读取并处理文档元素
    procedure readElements(doc xmldom.DOMDocument) is
      nl     xmldom.DOMNodeList;
      len    number;
      n      xmldom.DOMNode;
      attn   xmldom.DOMNode;
      nnm    xmldom.DOMNamedNodeMap;
      nl2    xmldom.DOMNodeList;
      len2   number;
      strSQL varchar2(1000);

    begin
       -- 读取 PERSON 元素
       nl := xmldom.getElementsByTagName(doc, 'PERSON');
       len := xmldom.getLength(nl);

       -- 遍历元素
       for i in 0..len-1 loop
          -- 构造动态 SQL 语句
          strSQL := 'INSERT INTO PEOPLE VALUES (';
          n := xmldom.item(nl, i);
          if xmldom.getNodeName(n)='PERSON' then
             nnm := xmldom.getAttributes(n);  -- 读取 PERSONID 属性
             attn := xmldom.item(nnm, 0);
             strSQL := strSQL || '''' || xmldom.getNodeValue(attn) || '''';
          end if;

          -- 读取 PERSON 的子节点
          nl2 := xmldom.getChildNodes(n);
          len2 := xmldom.getLength(nl2);

          -- 处理 NAME, ADDRESS, ... 等节点
          for j in 0..len2-1 loop
             n := xmldom.item(nl2, j);
             strSQL := strSQL || ', ''' || xmldom.getNodeValue(xmldom.getFirstChild(n)) || '''';
          end loop;
          -- 完成 动态 SQL 语句的构造
          strSQL := strSQL || ')';
          -- dbms_output.put_line(strSQL);
          -- 执行插入记录的 SQL 语句
          execute immediate(strSQL);  -- 执行动态 SQL
       end loop;

       commit;  -- 提交插入
       dbms_output.put_line('');
    end readElements;

    begin
    -- 新建解析器实例
       p := xmlparser.newParser;

    -- 设置解析器特性
       xmlparser.setValidationMode(p, FALSE);
    --   xmlparser.setErrorLog(p, dir || '\' || errfile);
       xmlparser.setBaseDir(p, dir);

    -- 解析输入文件
       xmlparser.parse(p, dir || '\' || inpfile);

    -- 获取解析后的文档对象
       doc := xmlparser.getDocument(p);

    -- 读取文档元素
       dbms_output.put_line('读取文档元素并保存到表 PEOPLE 中.');
       readElements(doc);

    -- 释放资源
       xmldom.freeDocument(doc);

    end xml2table;
    /
    show errors;
    -- exec xml2table('d:\xml\plsql', 'people.xml', 'err.log');

    begin
     xml2table('PROJECT_ONE','T31_PEOPLE.XML', 'ERR.log');
    end;

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/11 12:20:00
     
     lit0302 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:97
      门派:XML.ORG.CN
      注册:2007/4/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lit0302发送一个短消息 把lit0302加入好友 查看lit0302的个人资料 搜索lit0302在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lit0302的博客5
    发贴心情 
    有没有用jdom方法把xml导入数据库的啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/20 1:13:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 数据库 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/24 0:12:43

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    6,311.035ms