/***
* 獲取oracle資料欄位資訊(欄位名,欄位類型,欄位長度,數位精度,是否為空)
* @param con
* @param table 表名
* @return
*/
public static Map<String,List<String>> getOracleColumn_info(Connection con,String table){
String sql="select COLUMN_NAME,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NullABLE from user_tab_columns where table_name =UPPER('"+table+"')";
Statement st = null;
Map<String,List<String>> map = new LinkedHashMap<String, List<String>>();
try{
st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
List<String> val = null;
while(rs.next()){
val = new ArrayList<String>();
String key = rs.getString("COLUMN_NAME"); //獲取欄位名
val.add(rs.getString("DATA_TYPE")); //獲取資料類型
val.add(rs.getString("DATA_LENGTH")); //獲取資料長度
val.add(rs.getString("DATA_PRECISION")); //獲取資料長度
val.add(rs.getString("DATA_SCALE")); //獲取資料精度
val.add(rs.getString("NullABLE")); //獲取是否為空
map.put(key, val);
}
}catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return map;
}
 
/***
* 獲取sql資料欄位資訊(欄位名,欄位類型,欄位長度,數位精度,是否為空)
* @param con
* @param table
* @return
*/
public static Map<String,List<String>> getSQLColumn_info(Connection con,String table){
String sql="SELECT syscolumns.name COLUMN_NAME,systypes.name DATA_TYPE,syscolumns.length ,syscolumns.prec, syscolumns.scale ,syscolumns.isnullable FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('"+table+"')";
Statement st = null;
Map<String,List<String>> map = new LinkedHashMap<String, List<String>>();
try{
st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
List<String> val = null;
while(rs.next()){
val = new ArrayList<String>();
String key = rs.getString("COLUMN_NAME"); //獲取欄位名
val.add(rs.getString("DATA_TYPE")); //獲取資料類型
val.add(rs.getString("length")); //獲取資料長度
val.add(rs.getString("prec")); //獲取資料長度
val.add(rs.getString("scale")); //獲取資料精度
val.add(rs.getString("isnullable")); //獲取是否為空
map.put(key, val);
}
}catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return map;
}
 
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()