成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

利用Java如何實(shí)現(xiàn)導(dǎo)出oracle數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)

利用Java如何實(shí)現(xiàn)導(dǎo)出oracle數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)專注于海州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。海州網(wǎng)站建設(shè)公司,為海州等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

 Java導(dǎo)出oracle表結(jié)構(gòu)實(shí)例詳解

最近用到的,因?yàn)閜lsql是收費(fèi)的,不讓用,找了很多方法終于發(fā)現(xiàn)了這個(gè)。

核心語(yǔ)句

SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE  
FROM USER_OBJECTS U  
where U.OBJECT_TYPE = 'TABLE'  
or U.OBJECT_TYPE = 'VIEW'  
or U.OBJECT_TYPE = 'INDEX'  
or U.OBJECT_TYPE = 'PROCEDURE'  
or U.OBJECT_TYPE = 'SEQUENCE'  
or U.OBJECT_TYPE = 'TRIGGER'  
order by U.OBJECT_TYPE desc 

自己寫(xiě)的Java方法,未做封裝。

package sql; 
 
import java.io.FileInputStream; 
import java.io.FileWriter; 
import java.sql.Clob; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Properties; 
 
public class Main { 
 
  private static final String TYPE_MARK = "-1"; 
   
  private static String SQL =  
    "SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE " + 
    "FROM USER_OBJECTS U " + 
    "where U.OBJECT_TYPE = 'TABLE' " + 
    "or U.OBJECT_TYPE = 'VIEW' " + 
    "or U.OBJECT_TYPE = 'INDEX' " + 
    "or U.OBJECT_TYPE = 'PROCEDURE' " + 
    "or U.OBJECT_TYPE = 'SEQUENCE' " + 
    "or U.OBJECT_TYPE = 'TRIGGER' " + 
    "order by U.OBJECT_TYPE desc"; 
   
  private static String URL = "jdbc:oracle:thin:@192.168.1.2:1521:orcl"; 
  private static String USERNAME = "abc"; 
  private static String PASSWORD = "abc"; 
  private static String OUTFILE = "tables.sql"; 
   
  /** 
   * @param args 
   * @throws Exception 
   * @throws  
   */ 
  public static void main(String[] args) throws Exception { 
    // TODO Auto-generated method stub 
    Properties properties = new Properties(); 
    properties.load(new FileInputStream("config.properties")); 
    URL = properties.getProperty("url", URL); 
    USERNAME = properties.getProperty("username", USERNAME); 
    PASSWORD = properties.getProperty("password", PASSWORD); 
    OUTFILE = properties.getProperty("outfile", OUTFILE); 
    SQL = properties.getProperty("sql", SQL); 
     
    FileWriter fw = new FileWriter(OUTFILE); 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD); 
    Statement statement = con.createStatement(); 
    ResultSet rs = statement.executeQuery(SQL); 
    Clob ddl; 
    String type = TYPE_MARK; 
    int count = 0; 
    List<String> list = new ArrayList<String>(); 
    while(rs.next()) { 
      ddl = rs.getClob(1); 
      fw.write(ddl.getSubString(1L, (int)ddl.length())); 
      if(!rs.getString(2).equals(type)) { 
        if(!type.equals(TYPE_MARK)) { 
          list.add(type + "," + count); 
          type = rs.getString(2); 
          count = 1; 
        } else { 
          type = rs.getString(2); 
          count ++; 
        } 
      } else 
        count ++; 
    } 
    list.add(type + "," + count); 
    fw.flush(); 
    fw.close(); 
    rs.close(); 
    statement.close(); 
    con.close(); 
    for(String type1 : list) 
      System.out.print(type1.split(",")[0] + ":" + type1.split(",")[1] + ";"); 
    System.out.println(); 
  } 
 
} 

config.properties

url=jdbc:oracle:thin:@192.168.1.2:1521:orcl 
username=abc 
password=abc 
outfile=tables.sql 
sql=SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE \ 
FROM USER_OBJECTS U \ 
where U.OBJECT_TYPE = 'TABLE' \ 
or U.OBJECT_TYPE = 'VIEW' \ 
or U.OBJECT_TYPE = 'INDEX' \ 
or U.OBJECT_TYPE = 'PROCEDURE' \ 
or U.OBJECT_TYPE = 'SEQUENCE' \ 
or U.OBJECT_TYPE = 'TRIGGER' \ 
order by U.OBJECT_TYPE desc 

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

文章標(biāo)題:利用Java如何實(shí)現(xiàn)導(dǎo)出oracle數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)
本文來(lái)源:http://jinyejixie.com/article48/gdpohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)虛擬主機(jī)、全網(wǎng)營(yíng)銷推廣、靜態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
将乐县| 亚东县| 体育| 五常市| 商河县| 嘉祥县| 聂荣县| 龙陵县| 武鸣县| 苍山县| 同江市| 普格县| 吉安市| 新河县| 湘潭县| 多伦县| 那坡县| 调兵山市| 丰宁| 乐至县| 满城县| 永川市| 类乌齐县| 永城市| 达尔| 彭泽县| 桂平市| 工布江达县| 叙永县| 长宁县| 苍溪县| 桂阳县| 梁平县| 衡阳县| 开原市| 苏尼特右旗| 太和县| 清流县| 南昌市| 黄浦区| 香河县|