这是弗朗西斯科写的第一个问题click-here,但现在我有了一个帐户。我会试着解释一下。对于Job,我需要一个.txt文件,其中包含从Oracle Table插入的SQl字符串。我不能像蟾蜍一样使用软件,因为我需要使用Java代码。我不想尝试插入日志,我需要从表中导出它。客户要求它,这是至关重要的。你说正常的方法是使用DataPump实用程序,但使用这个工具,我会得到一个文本文件吗?我读到DataPump使用二进制文件。使用Java JDBC和元数据,我需要转换所有的String文件,确定它我同意,但我必须编写很多代码来了解我从Table获得什么样的类型来解析它。一个例子是日期类型,oracle软件将其解析为to_date('0005-11-21','DD / MM / RR'),java toTostrig将执行类似'2009-1-25 13:00:00'的操作。 Java toString方法将截断一些Number类型所以我需要知道是否有人这样做或者可以帮助我。
我是这个页面的新手,任何人都可以编辑第一个问题,或者如果我使用非注册用户进行更新,我该如何更新?
非常感谢你。旧金山
答案 0 :(得分:1)
去年,我们必须做一些事情,从/向文件读取和写入数据库(Ingres,Derby和HSQL)记录。
基本思想是让一个类实现一个方法,该方法返回一个根据数据的SQL类型格式化的String
它类似于:
import static java.sql.Types.*;
...
private static final String DATE_FORMAT = "yyyy-MM-dd";
public static String formatDate(Date date) {
DateFormat format = new SimpleDateFormat(DATE_FORMAT);
return format.format(date);
}
...
@Override
public String format(int type, Object value) throws SQLException {
switch (type) {
case INTEGER:
case REAL:
case DOUBLE:
case SMALLINT:
return value.toString();
case CHAR:
case LONGVARCHAR:
case VARCHAR:
return (String) value;
case DATE:
return formatDate((Date) value);
case TIME:
return formatTime((Time) value);
case TIMESTAMP:
return formatTimestamp((Timestamp) value);
// TODO missing some types here
default:
throw new SQLException("unhandled type " + getTypeName(type));
}
}
抱歉,我不允许发布实际代码