gpt4 book ai didi

oracle - Coldfusion - Oracle 指南怪异

转载 作者:行者123 更新时间:2023-12-02 11:43:06 25 4
gpt4 key购买 nike

我在 Coldfusion 7 中尝试用作 sys_guid() 值时看到了一个有趣的结果。

如果我这样做

<cfquery>select sys_guid() as guid from dual</cfquery>

返回的 GUID 值被 Coldfusion 视为二进制字段。

但是,如果我这样做

<cfquery>select sys_guid() || '' as guid from dual</cfquery>

返回的 guid 值被视为字符串。

我尝试了几个不同的 Oracle 和 Coldfusion/Macromedia 驱动程序,它们的响应都是相同的。后一个语句是我一直在使用的,因此我可以稍后在代码中处理指南,并且工作正常。我希望有人能解释为什么我会得到这些结果。

最佳答案

GUID 是 128 位(16 字节)二进制值。它们不是字符串。查看 sys_guid 的 Oracle 文档。

您的目标是将 GUID 作为字符串处理。这意味着您需要以某种方式将 GUID 值转换为字符串值。当您简单地select sys_guid() as guid from Dual时,您将获得一个 128 位二进制值,如预期的那样。当您执行 select sys_guid() || 时'' 作为来自 Dual 的 guid,那么首先 Oracle 必须将 128 位二进制值转换为字符串值,然后才能执行连接,因为连接仅适用于两个字符串值。 Oracle 已经知道如何将二进制值转换为字符串值,并且如果您将二进制值放在 Oracle 需要字符串值的位置,它将执行此转换。

关于oracle - Coldfusion - Oracle 指南怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952953/

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