从返回的 Oracle 时间戳列检索数据

2024-04-06

我们有一个使用 Oracle 时间戳的 ColdFusion 8 (Linux) 应用程序。我们刚刚从 10g 转换为 Oracle 11g,现在在数据源上使用 Oracle 的瘦客户端。我们在选择时间戳列的应用程序中遇到错误。

看起来好像是一个类的对象oracle.sql.TIMESTAMP正在被退回。我通过转储该列的内容来验证这一点。果然,它让我详细了解了对象的方法及其返回类型。但是,我似乎无法直接与该对象交互:

<cfquery name="getstuff" ...>
    SELECT timestampfld ...
    FROM myTable
</cfquery>

getstuff.timestampfld包含一个对象。但是,这样做:

<cfoutput query="getstuff">
    #timestampfld.stringValue()#
    #timestampfld.dateValue()#
</cfoutput>

产生错误,指出无法找到这些方法。我如何获取该对象中保存的数据?

评论更新:

当我获取列值并应用DateFormat( timestampfld, "dd.mm.yyyy" )对它起作用。 CF 误差为

"The value class oracle.sql.timestamp cannot be converted to a date".

当我表演时<cfoutput>,我得到了类定义。

在检索到的列中,我似乎得到了一个对象而不是字符串。当我 cfdump 该列时,我得到 OBJECT OF oracle.sql.TIMESTAMP。转储列出了可用的方法和字段。当我输出相同的变量时,会显示一个字符串。当我尝试执行DataFormat()在变量上,它抱怨它不是日期。


我只是在开发过程中偶然发现了这个错误。我过去曾经有过它,但从那以后我就忘记了它。 我知道有两种缓解方法: 第一个是根据answer https://stackoverflow.com/a/51056612/577052关于不同上下文中相同错误消息的问题。 可以将以下内容添加到jvm.config file

-Doracle.jdbc.J2EE13Compliant=true

第二个是不返回 Oracle TIMESTAMP 列,而是 CAST 它执行 DATE,首先,就像

<cfquery name="getstuff" ...>
  SELECT CAST( timestampfld as DATE ) timestampfld
  FROM myTable
</cfquery>

说实话,我对这两个都不满意。当忘记 JVM 参数时,软件就会崩溃。另一方面,CAST 可能会影响 SQL 的工作方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从返回的 Oracle 时间戳列检索数据 的相关文章

  • 如何在开始日期的时间戳中添加秒数,以便获得估计的结束日期?

    我有一个带有 start time 和估计时间 以秒为单位 的任务对象 start time 以 MYSQL DATETIME 形式存储在数据库中 估计时间以秒形式存储 我想将秒数添加到 start time 以获得估计的完成日期 内维尔提
  • 将数据批量插入 Oracle 数据库的最佳方法

    我将创建很多数据脚本 例如 INSERT INTO 和 UPDATE 如果不是 1 000 000 条记录 也会有 100 000 条以上记录 快速将这些数据导入 Oracle 的最佳方法是什么 我已经发现 SQL Loader 不适合这样
  • Oracle数据库中如何去掉NUL字符?

    数据库 我有一个 Oracle11g 数据库 其中有一个包含大约 1000 万行和大约 40 列的表 这些数据源自打孔卡时代 并已从一个 Oracle 版本转换到下一个版本多次 这是一个实时生产数据库 并且在某种程度上持续使用 但它并不是那
  • 使用 TIMEZONE 查询 Oracle TIMESTAMP

    我在 Oracle DB 表中有一个类型为TIMESTAMP 6 WITH TIME ZONE 有些数据行包含来自不同时区的数据 有些是 UTC 有些是其他时区偏移量 有没有一种方法可以查询 Oracle 表 以便结果始终以 UTC 形式返
  • 识别并解决 Oracle ITL 死锁

    我有一个 Oracle DB 包 它经常导致我认为是 ITL 感兴趣的事务列表 死锁 跟踪文件的相关部分如下 Deadlock graph Blocker s Waiter s Resource Name process session h
  • 在c# Visual Studio中编译协议缓冲区3时间戳类型?

    Visual Studio 2015 C NuGet Packages Google Protobuf v3 0 0 Google Protobuf Tools v3 0 0 消息类型Quake syntax proto3 import g
  • 使用 cfdiv 绑定时禁用间质性图形

    有没有办法阻止 cfdiv 刷新时出现 正在加载 图形 我想防止加载图形然后加载新 html 时出现闪烁 通过在标题底部添加这些行 它会覆盖 正在加载 html 并且似乎可以防止 IE 和 FireFox 中的闪烁效果 虽然这似乎可以解决问
  • 网络适​​配器无法建立连接 - Oracle 11g

    我编写了一个 servlet 程序 我希望它连接到我的 Oracle 数据库 但它给了我一个错误 我正在使用 Eclipse Helios Tomcat 6 0 37 Oracle 11g 11 2 0 1 0 ojdbc6 jar 在服
  • Android 中从时间戳获取日期名称

    我有一个类 当它初始化时 它会使用公共 getter 在私有字段中记录初始化时间 public class TestClass private long mTimestamp public TestClass mTimestamp Syst
  • 将到期日期作为 TIMESTAMP 列的默认值

    有没有办法将列的默认值设置为过期日期 从CURRENT TIMESTAMP 我已经尝试过 ALTER TABLE table ADD COLUMN expire TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD
  • 提高 apache 日志的精度以包括毫秒

    我修改了配置rsyslogd禁用RSYSLOG TraditionalFileFormat 但仍然是apache日志 var log apache error log仅显示第二精度 还有什么需要配置的吗 At http httpd apac
  • 将数据持久保存在 Oracle 数据库的 docker 卷中

    我创建了用于存储我的应用程序数据库数据的卷 docker volume create dbvolume 然后我启动了带有 Oracle XE 11g 数据库映像和数据卷的 docker 容器 docker run name OracleXE
  • 从 Oracle Forms 调用 Microsoft Word 拼写检查时出现 Vista 焦点问题

    朋友们 在 Vista 上测试我们的 Oracle Forms 应用程序时 我发现了一个有趣的 挑战 应用程序可以调用 Microsoft Word 拼写检查器对字段执行拼写检查 调用时 用户将看到标准的 Microsoft Word 拼写
  • 在 PLSQL 条件逻辑中使用子查询;错误 PLS-00405

    我正在构建一个使用 PHP 从 Oracle10g 数据库服务器获取数据的应用程序 我的输入表单有一系列复选框 这些复选框通过数组提交到处理页面 代码过滤到相关元素
  • 通过一个表中的列更新另一表中的列

    我有两张桌子 A 和 B 两者都有一个共同的列 name 并通过列 id 相互链接 表A中的 name 列是空的 而表B中有数据 我的任务是用相应的id填充从表B到表A的该列中的所有数据 我正在使用以下查询 UPDATE A SET A n
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 将游标中的数据合并为一个

    我有一个存储过程 它多次执行另一个存储过程 我需要联合并返回数据 这是在执行第二个过程后得到的 我可以以某种方式将多个游标中的数据合并到另一个游标中吗 没有临时表或类表数据类型是否可能 编辑 联合的游标计数实际上是 n 其中 n 是 1 2
  • 如何创建毫秒粒度的 Python 时间戳?

    我需要一个自纪元以来的毫秒 ms 时间戳 这应该不难 我确信我只是缺少一些方法datetime或类似的东西 实际上微秒 s 粒度也很好 我只需要亚 1 10 秒的计时 例子 我有一个每 750 毫秒发生一次的事件 假设它检查灯是否打开或关闭
  • 时间戳相减必须具有相同的时区或没有时区,但它们都是 UTC

    有一些问题解决了相同的错误TypeError Timestamp subtraction must have the same timezones or no timezones但没有一个面临与此相同的问题 我有 2 个 UTC 时间戳 在
  • 如何在Oracle数据库11g中创建新模式/新用户?

    我已经申请了一家公司的实习机会 作为一个问题 他们要求我为他们的公司创建一个具有一定要求的架构 并将DDL文件 我已经安装了 Oracle 数据库 11g Express 版本 但如何在 Oracle 数据库 11g 中创建新架构 我在网上

随机推荐