【发布时间】:2013-12-31 01:54:21
【问题描述】:
我们有一个使用 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>
产生错误,指出无法找到这些方法。如何获取该对象中保存的数据?
来自 cmets 的更新:
当我获取列值并将DateFormat( timestampfld, "dd.mm.yyyy" ) 函数应用于它时。 CF 错误是
"The value class oracle.sql.timestamp cannot be converted to a date".
当我执行<cfoutput> 时,我得到了类定义。
在检索到的列中,我似乎得到的是一个对象而不是一个字符串。当我 cfdump 列时,我得到了 oracle.sql.TIMESTAMP 的对象。转储列出了可用的方法和字段。当我 cfoutput 相同的变量时,会显示一个字符串。当我尝试对变量执行DataFormat() 时,它抱怨它不是日期。
【问题讨论】:
-
你能发布exact错误吗(即:不要只描述它)。
-
如果你只是
<cfoutput>#timestampfld#</cfoutput>呢? -
CF 错误是“值类 oracle.sql.timestamp 无法转换为日期”。我正在获取列值并将 DateFormat() 函数应用于它。当我执行
我得到类定义。 -
更正。当我输出时间戳列值时,我得到一个包含时间/日期的字符串。
-
" 当我输出时间戳列值时,我得到一个包含所包含时间/日期的字符串" 那么......有什么问题?
标签: oracle11g coldfusion timestamp oracle10g coldfusion-8