본문 바로가기

Slack 채널 정리

groovy - snake to camel

DB 테이블의 컬럼명을 가져와서 camel 형식으로 바꿔 쓸 일이 있는데 일일이 desc 명령어로 가져오기 번거로워서 간만에 groovy 이용해서 짜보았습니다.  배열에 컬럼명 추출한 테이블들만 넣어주면 화면 출력 및 파일에 정보 저장하는 간단한 기능입니다. desc 명령은 기본 sql 문이 아니어서 meta.getColumnName 을 사용하는거 외에는 특이한건 없습니다 ^^; 

import groovy.sql.Sql
sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1522:Test",
        "scott", "tiger", "oracle.jdbc.pool.OracleDataSource")

def getMeta(file, tableName) {
    String query = "select * from $tableName where 1 != 1"
    println("*" * 10)
    println(tableName)
    println("*" * 10)
    file.write("")
    file << "*** $tableName ***\n"
    rows = sql.rows(query, { meta ->
        for (int i = 1; i <= meta.columnCount; i++) {
            println meta.getColumnName(i)
            file << meta.getColumnName(i) + "\n"
        }
    })
}

def execDesc() {
    def mdmTable = ["mdm_accnt", "mdm_cnti", "mdm_vsl"] as String[]
    File file = new File("D:/test.txt")
    mdmTable.each {
		File file = new File("D:/${it}.txt")
        getMeta(file, "$it")
    }
}

execDesc()