|
如果某些表中包含有相同的字段信息,都是从某一张表关联过来的,如果关联的子表的字段的长度太短就会报错,解决方法是将子表的字段长度设置长点,但是表会有很多,所以可通过程序实现修改:
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();
}
}
}
|
评分
-
查看全部评分
|