gpt4 book ai didi

java - 获取 oracle.sql.TIMESTAMPLTZ@70156e7b 的值

转载 作者:行者123 更新时间:2023-11-30 08:03:27 26 4
gpt4 key购买 nike

我正在使用 Oracle 11g 企业版数据库。我们必须从数据库表中获取数据。数据库表具有以下类型的列之一:

  • 时间戳
  • 时间戳

所有其他数据类型及其值均已成功获取。

我们正在使用 apache meta-modal 来解析数据库表并使用它生成 CSV。

当我们在行上使用这个方法时:

row.getValues()[indexColumn]

但此代码不获取给定行的列值,它以字符串形式返回 oracle.sql.TIMESTAMPLTZ@70156e7b 对象。我们需要它的值(value)。

将其转换为 TIMESTAMPLTZ,抛出转换异常。或者 columnValue.timestampValue() 也没有任何意义。

如何使用 Apache 元模型以格式化方式获取列类型 TIMESTAMPLTZ 的值?

最佳答案

好的,所以如果您在输出中看到类似“oracle.sql.TIMESTAMPLTZ@70156e7b”的内容,那么您的代码必须显式或隐式调用 oracle.sql.TIMESTAMPLTZ 上的 toString()对象。

这不会给您带来任何可读性,更不用说有用了,因为 TIMESTAMPLTZ 类不会覆盖 toString()。您看到的是默认的 Object.toString() 方法为您提供的内容。

TIMESTAMPLTZ 实际上是一个日期转换器/适配器,它以某种形式包装日期。使用 TIMESTAMPLTZ 实例的方式是调用实例方法之一。例如,调用 dateValue(Connection) TIMESTAMPLTZ 对象会将包装的 Oracle 内部日期转换为 Java Date 对象。其他实例方法转换为字符串、字节数组和 JDBC 日期/时间类。

(该类还有一堆静态转换器方法,但我认为这不是您在这里需要的。)

关于java - 获取 oracle.sql.TIMESTAMPLTZ@70156e7b 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36309354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com