起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1454|回复: 0

[分享] 通过代码修改所有表中含有相关字段的长度的方法共享

[复制链接]
发表于 2013-11-28 22:15:36 | 显示全部楼层 |阅读模式
如果某些表中包含有相同的字段信息,都是从某一张表关联过来的,如果关联的子表的字段的长度太短就会报错,解决方法是将子表的字段长度设置长点,但是表会有很多,所以可通过程序实现修改:
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Connection;
public class modifyFieldSize {
static Connection conn;
static PreparedStatement pmst = null;
static PreparedStatement pmst1 = null;
static ResultSet rs = null;
/**
  * @param args
  */
public static void main(String[] args) {
  querTabcolumns();
}
public static void querTabcolumns(){
  String url = "jdbc:oracle:thin:@IP:1521:数据库名";
  String userName = "用户名";
  String password = "密码";
  try{
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection(url,userName,password);
   
   String sql = "select a.TABLE_NAME,a.COLUMN_NAME,a.DATA_LENGTH from user_tab_columns a "
    +"where a.COLUMN_NAME in(‘字段1’,'字段2','字段3','字段4') "
    +"and a.DATA_LENGTH = '64'";
   pmst = conn.prepareStatement(sql);
   rs = pmst.executeQuery();
   while(rs.next()) {
    // 获取字段名
    String columnName = rs.getString("COLUMN_NAME");
    // 获取表名
    String tableName = rs.getString("TABLE_NAME");
    String sql1 = "alter table "+tableName+" modify "+columnName+" varchar2(256)";
    pmst1 = conn.prepareStatement(sql1);
    pmst1.execute();
   }
  }catch(Exception e){
   e.printStackTrace();
  }
}
}

评分

参与人数 1 +13 收起 理由
jishuang + 13 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-22 13:23 , Processed in 0.061935 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表