`

oracle视图导出xml文件,解析xml,生成sql语句建表

 
阅读更多
今天在做测试数据库的时候,需要把用户提供的视图,转换成我们的测试表。但是由于权限限制,我们没有办法获取用户的正式表(由于安全方面的关系,表结构不好协调)。只能通过plSql操作用户提供的视图,去建立自己的表。用PlSql搞来搞去,能通过plsql将查询结果导出为sql文件,还可以通过视图的描述功能,将字段信息导出xml文件,格式大概如下:
<?xml version="1.0" encoding="utf-8" ?>
<ROWDATA>

<ROW>
<Name>DICTIONARYID</Name>
<Type>VARCHAR2(125)</Type>
<Nullable></Nullable>
<Default></Default>
<Comments></Comments>
</ROW>

<ROW>
<Name>KIND</Name>
<Type>VARCHAR2(110)</Type>
<Nullable></Nullable>
<Default></Default>
<Comments></Comments>
</ROW>

<ROW>
<Name>CODE</Name>
<Type>VARCHAR2(120)</Type>
<Nullable></Nullable>
<Default></Default>
<Comments></Comments>
</ROW>
………..
</ROWDATA>

看来看去,想到,如果能通过解析这个xml文件,把对应的值取到,组成sql语句的话,创建表结构,然后把数据导入进去,不就可以了嘛!
这里就要用到java解析xml内容了。



源代码如下:

import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class MakeSqlByXml {
         public static DocumentBuilderFactory factory = null;

public static DocumentBuilder builder = null;

public static Document document = null;

public MakeSqlByXml() {

}

public static String MakeSql() {
               String sql = "Create table test_t_dictionary";
      String path = "d:\\tt.xml";
      String fields = "";
     //从 XML 文档获取生成 DOM 对象树的解析器实例
       factory = DocumentBuilderFactory.newInstance();
      try {
//从 XML 文档获取 DOM 文档实例
builder = factory.newDocumentBuilder();

//将给定文件的内容解析为一个 XML 文档
document = builder.parse(new File(path));

//访问文档的子节点
Element rootElement = document.getDocumentElement();

//返回具有给定标记名称的所有后代
NodeList nodeList = rootElement.getElementsByTagName("ROW");

//遍历所有节点
for (int i = 0; i < nodeList.getLength(); i++) {

Node nodel = nodeList.item(i);

//遍历节点的所有属性
for (Node node = nodel.getFirstChild(); node != null; node = node.getNextSibling())  
{  
//获取指定节点的值
if (node.getNodeName().equals("Name")) {  
                      String name = node.getFirstChild().getTextContent(); 
             fields = fields + name + " ";
          }  
    if (node.getNodeName().equals("Type")) {  
      String type = node.getFirstChild().getNodeValue(); 
fields = fields + type + " , ";
      }  
}  
}
fields = fields.substring(0, fields.length()-2);
sql = sql +"("+ fields+")";
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return sql;
}

public static void main(String args[]) {
System.out.println(MakeSql());
}
}


运行结果:



然后在plsql中执行一下,再把数据导入进去,就可以了。

程序中指定了xml文件的路径,我直接把导出的xml文件放在了D盘下了。
分享到:
评论

相关推荐

    oracle数据库自动生成mybatis文件

    - XML配置文件:MyBatis的SQL语句主要在XML配置文件中编写,包括数据源配置、事务管理、SQL映射等。通过工具,我们可以根据Oracle表结构自动创建这些XML文件,其中包含各个表的select、insert、update、delete等...

    DbSchema数据库导出

    这个命令可以生成SQL脚本,包含创建数据库、表、视图等的语句,以及插入数据的语句,使得数据能在其他Mysql实例上重现。 DbSchema作为跨平台的数据库工具,支持多种数据库系统,并且提供图形化的界面来操作这些任务...

    Oracle相关SQL葵花宝典

    本书还特别关注性能优化,包括索引策略、查询优化器的工作原理、Explain Plan的使用,以及如何通过调整SQL语句和数据库参数来提升系统性能。此外,还会涉及数据库安全性,如用户权限管理、角色的创建与应用,以及...

    Oracle SQL Monitor

    Oracle SQL Monitor是一款强大的数据库性能监控工具,主要用于跟踪和分析Oracle数据库中的SQL语句执行情况。在数据库管理和优化中,理解SQL语句的执行性能是至关重要的,因为这直接影响到数据库的响应时间和整体效率...

    Oracle可视化工具sqldeveloper-23.1.0.097.1607-x64

    SQL Developer 支持从多种格式(如 CSV、Excel、XML 等)导入数据到 Oracle 数据库,同时也可将数据导出到这些格式,为数据备份和迁移提供了便利。 **5. PL/SQL 开发** 对于 PL/SQL 开发者,SQL Developer 提供了...

    Oracle SQL Handler(Oracle 开发工具) v5.1.zip

    (6) 能运行和调试PL/SQL语句,能精确定位到错误所在的行列位置; (7) 多线程多连接,会话在运行中可以中断,或编辑,或创建新会话; (8) 监控批量SQL语句的运行,在运行中可暂停、更正等; (9) 以缩进的...

    oracle sql developer 附带说明

    5. **数据导出与导入**:提供数据迁移功能,能够将数据导出为多种格式(如CSV、XML、Excel等),也可以从这些格式导入数据到数据库。 6. **报表与图表**:用户可以生成各种报表和图表,以可视化方式展示数据库中的...

    sql工具,可查询、导出、生成数据字典等

    “查询”是SQL的核心功能,允许用户通过编写SQL语句来检索、筛选、聚合数据库中的信息。用户可以使用SELECT语句进行复杂的数据查询,包括联接多个表、使用WHERE子句过滤记录、GROUP BY进行分组以及HAVING和ORDER BY...

    oracle sql developer

    4. **数据导出和导入**:可以方便地将数据导出到文件或从文件导入数据,支持多种格式,如CSV、XML、Excel等。 5. **图表和报表**:能够生成各种图表和报表,帮助分析和理解数据分布、趋势等信息。 6. **PL/SQL调试...

    Oracle sqldeveloper(1)

    6. **报表与导出**:可以创建自定义报表,展示数据库信息,支持将数据导出到多种格式,如Excel、CSV、XML等。 7. **连接管理**:支持多种Oracle数据库版本的连接,可以保存多个数据库连接信息,方便在不同项目间...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    监控批量SQL语句的运行(在运行中可暂停、更正);不需要安装 Oracle 客户端;占用系统资 源极少;能运行于所有的主流平台包括 Windows、Linux、Unix 及 Mac OS;多线程多连接。所有这些 功能特性在同类工具中表现...

    HEIDISQL工具!

    压缩包中的"SQL语句生成2.0正式版"可能是HEIDISQL的一个扩展插件或工具,用于自动化生成SQL语句,提高开发效率。它可能包含以下特性: 1. **自动生成SQL**:根据数据库模型自动生成INSERT、UPDATE、DELETE等语句,...

    sql代码生成工具

    标题中的“sql代码生成工具”指的是一个专门用于自动化生成SQL语句的软件工具。这类工具在IT行业中扮演着重要角色,特别是在数据库管理和开发过程中,能够极大地提高效率并减少人为错误。SQL(Structured Query ...

    HeidiSQL 数据库管理软件 安装和配置

    在这里,你可以输入任何合法的SQL语句,比如`SELECT`、`INSERT`、`UPDATE`或`DELETE`等。按下回车键,查询结果将显示在下方的网格中。 **5. 用户权限管理** HeidiSQL允许你管理数据库用户的权限。通过右键点击用户...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    监控批量SQL语句的运行(在运行中可暂停、更正);不需要安装 Oracle 客户端 ;占用系统资源极少;能运行于所有的主流平台包括 Windows、Linux 、Unix 及 Mac OS; 多线程多连接。所有这些功能特性在同类工具中表现...

    ORACLE SQL Reference 10g

    ### ORACLE SQL Reference 10g 知识点解析 #### 一、Oracle数据库SQL参考手册10g版本概述 《Oracle Database SQL Reference》10g版本是Oracle公司为Oracle数据库10g版本提供的官方SQL语言参考文档。该文档详细介绍...

    HeidiSql客户端,可连接mySql,sqlServer等数据库

    2. **查询执行**:编写SQL语句,执行查询、更新、插入和删除操作,结果可以以网格或文本形式显示。 3. **结构管理**:创建、修改和删除数据库、表、视图、存储过程等对象,还可以进行索引管理和权限设置。 4. **备份...

    sqldeveloper-19.2.1.247.2212-x64.zip

    SQL Developer 是一款由甲骨文公司(Oracle Corporation)开发的免费、全面的集成开发环境(IDE),主要用于管理和操作 Oracle 数据库。此软件以其强大的功能、直观的用户界面和易用性而受到广大数据库管理员和...

    SQL工具SqlDbx

    关键词提示是SqlDbx的一个核心特性,它能够自动补全SQL语句中的关键字和对象名,大大减少了编写SQL语句的时间。这个功能对于初学者来说非常友好,可以帮助他们更快地熟悉SQL语法,同时也提升了专业开发者的编写效率...

    解析PL/SQL Developer导入导出数据库的方法以及说明

    在菜单栏选择`Tools` -&gt; `Export User Objects`,这将导出所有用户对象的创建脚本,包括表、视图、存储过程等,生成的.sql文件可以用于重建数据库对象的结构。 2. **导出.dmp文件** 如果需要导出包含数据的完整...

Global site tag (gtag.js) - Google Analytics