显式强制转型
与隐式强制转型或内置强制转型不同,数据库服务器决不会自动调用显式强制转型。
用户必须使用 CAST AS 关键字或使用双冒号 ( :: ) 强制转型运算符来显式调用它们。
确定应用哪种强制转型
数据库服务器使用下列规则来确定在特定情况下应用哪种强制转型:
1. 为了比较两种内置类型,数据库服务器自动调用适当的内置强制转型。
2. 数据库服务器仅对每个操作数应用一次隐式强制转型。如果需要两个或更多
强制转型才能将操作数转换为指定类型,那么用户必须显式调用其他强制转
型。
在下面的示例中,将文字值 5.55 隐式强制转型为 DECIMAL,然后将它显式强制转型
为 MONEY,最后强制转型为 yen:
CREATE DISTINCT TYPE yen AS MONEY
. . .
INSERT INTO currency_tab
VALUES (5.55::MONEY::yen)
要将单值类型与其源类型进行比较,用户必须将其中一种类型显式强制转型为另
一种类型。
为了将单值类型与不是其源的类型进行比较,数据库服务器将查找源类型与指定
类型之间的隐式强制转型。
如果这两种强制转型均未注册,那么用户必须调用单值类型与指定类型之间的显式
强制转型。如果此强制转型未注册,那么数据库服务器自动调用从源类型到指定类型的强
制转型。
如果没有定义这些强制转型,那么比较会失败。
要将不透明类型与内置类型进行比较,用户必须将不透明类型显式强制转型为数据
库服务器可以理解的数据类型(如 LVARCHAR、SENDRECV、IMPEX 或 IMPEXBIN)。然后,
数据库服务器调用内置强制转型来将结果转换为指定的内置类型。
要比较两种不透明类型,用户必须将其中一种不透明类型显式地强制转型为数据
库服务器可以理解的形式(例如:LVARCHAR、SENDRECV、IMPEX 或 IMPEXBIN),然后
将此类型显式地强制转型为第二种不透明类型。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




