[Oracle 노트] Oracle 데이터베이스의 모든 테이블 구조를 내보내는 코드

2405 단어 Oracle 노트

코드 1: DBUtil 클래스


이 클래스는 내가 쓴 [Oracle 노트]의 완벽한 JDBC가 Oracle 데이터베이스에 연결된 예시 코드를 참고하십시오.

코드 2: DBCreate 클래스

package util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import javax.naming.spi.DirStateFactory.Result;

public class DBCreate {
	public static void main(String[] args) {
		String sql2="select object_name From user_objects Where object_type='TABLE'";
		String sql="select * from user_tab_columns where table_name=?";
		Connection connection=DBUtil.getConnection();
		String str1="";
		try {
			PreparedStatement preparedStatement=connection.prepareStatement(sql);
			PreparedStatement preparedStatement2=connection.prepareStatement(sql2);
			ResultSet result2=preparedStatement2.executeQuery();			
			while (result2.next())//         
			{	
				int i=1;
				String temp=result2.getString("OBJECT_NAME");
				preparedStatement.setString(i, temp);
			    //System.out.print("  :"+result2.getString("OBJECT_NAME")+"\t");
			    
			    ResultSet result=preparedStatement.executeQuery();
			    StringBuilder sb=new StringBuilder();
			    sb.append("CREATE TABLE "+temp+"(");
				while (result.next())//         
				{
					sb.append(result.getString("COLUMN_NAME")+"  "+
				(result.getString("DATA_TYPE")=="DATE"?"DATE":result.getString("DATA_TYPE")+"("+result.getString("DATA_LENGTH")+")")+",");
				}
				System.out.println(sb.substring(0, sb.length()-1)+");");
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
}


실행 결과:

CREATE TABLE MY_EDUCATION(EDUCATION  VARCHAR2(8),EDUCATION_DESC  VARCHAR2(120),COMPANY  VARCHAR2(80),TRAN_TIMESTAMP  VARCHAR2(68),TRAN_TIME  NUMBER(22));
CREATE TABLE MY_INDUSTRY(INDUSTRY  VARCHAR2(80),INDUSTRY_DESC  VARCHAR2(240),PARENT_INDUSTRY  VARCHAR2(80),RISK_LEVEL  VARCHAR2(4),INDUSTRY_LEVEL  VARCHAR2(8),DETAIL_IND  VARCHAR2(4),STANDARD_IND  VARCHAR2(4),COMPANY  VARCHAR2(80),TRAN_TIMESTAMP  VARCHAR2(68),TRAN_TIME  NUMBER(22));

요약: 실행 결과copy를 Oracle 데이터베이스에 저장하고 실행하면 테이블 구조를 만들 수 있습니다(메인 키 없음).또한dump 명령을 사용하여 완성할 수 있으며 제가 쓴 [Oracle 노트] 데이터베이스 dump 가져오기와 내보내기를 참고할 수 있습니다.

좋은 웹페이지 즐겨찾기