转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
用JSP导出ORACLE的数据表DDL         ★★★★

用JSP导出ORACLE的数据表DDL

作者:闵涛 文章来源:闵涛的学习笔记 点击数:723 更新时间:2009/4/22 22:03:02

这几天忙着整理搞ISO的文档,也不知道自己维护的数据库手册是否齐全,算了干脆写个程序全给导出来算了;)。下面的程序expddl.jsp可导出当前连接数据库的用户下的所有数据表的DDL.

EXPDDL.JSP:

<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "oracle.jdbc.OracleDatabaseMetaData" %>
<%@ page import = "oracle.jdbc.OracleResultSetMetaData" %>
<%@ page import = "javax.sql.*,javax.naming.Context" %>
<%@ page import = "javax.naming.InitialContext" %>
<div align="center">
<%
 DataSource ds = null;
 
 Context ic = new InitialContext();
 ds = (DataSource) ic.lookup("java:comp/env/jdbc/mydb");
 
 Connection conn = ds.getConnection();
 
 OracleDatabaseMetaData odmd = (OracleDatabaseMetaData) conn.getMetaData();
 String us = odmd.getUserName();
 String[] types = new String[1];
    types[0]  = "TABLE";
 ResultSet rs = odmd.getTables(null,us,"%",types);
 while(rs.next()) {
   //取表名
   String tname = rs.getString(3);
 %>
   <div align="center">表名:<%= tname%></div>
   <table width="483" height="50" border="1"  cellpadding="2" cellspacing="0">
     <tr>
       <td><div align="center">序号</div></td>
       <td><div align="center">标识</div></td>
       <td><div align="center">类型/精度</div></td>
          <td><div align="center">标识说明</div></td>
     </tr>
 <%
   Statement st = conn.createStatement();
   ResultSet rs1 = st.executeQuery("select * from " + tname);
   OracleResultSetMetaData ormd = (OracleResultSetMetaData) rs1.getMetaData();
   //取列总数
   int colcnt = ormd.getColumnCount();
   //列序号
      int num = 1;
   for(int j=0;j<colcnt;j++) {
  String s = ormd.getColumnTypeName(j+1).toLowerCase();
  //只处理varchar2 char date number类型(根据需要添加相应的处理)
  if(s.equals("varchar2") || s.equals("char") || s.equals("date") || s.equals("number")) {
    if(s.equals("varchar2") || s.equals("char"))
      s = s + "(" + ormd.getColumnDisplaySize(j+1) + ")";
    if(s.equals("number"))
      s = s + "(" + ormd.getPrecision(j+1) + "," + ormd.getScale(j+1) + ")";
  %>
   <tr>
      <td width="40"><div align="center"><%= num++ %></div></td>
   <td width="98"><%=ormd.getColumnName(j+1)%></td><td width="144"><%= s %></td>
   <td width="173">&nbsp;</td> </tr>
 <%
     }
   }
   rs1.close();
   st.close();
 %>
  </table>
  <br>
  <%
 }
 rs.close();
 conn.close();
  %>
</div>


[系统软件]EXP-00008: ORACLE error 904 encountered的解决方…  [常用软件]PB7 连接 Oracle 的配置方法
[Web开发]oracle Export and Import 简介  [Web开发]ADO访问Oracle结果集的心得
[JAVA开发]JDBC+Hibernate将Blob数据写入Oracle  [JAVA开发]J2EE应用中与Oracle数据库的连接
[JAVA开发]Oracle Application Serve_  [其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手…
[其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…  [其他]PROC++批量导入导出ORACLE数据库表
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台