牛骨文教育服务平台(让学习变的简单)
博文笔记

开发 PostgreSQL 的 Cast 函数进行类型转换, 使用 CREATE CAST

创建时间:2016-04-29 投稿人: 浏览次数:611

CREATE CAST (source_type AS target_type)
WITH FUNCTION function_name (argument_type [, ...])
[ AS ASSIGNMENT | AS IMPLICIT ]

CREATE CAST (source_type AS target_type)
WITHOUT FUNCTION
[ AS ASSIGNMENT | AS IMPLICIT ]

CREATE CAST (source_type AS target_type)
WITH INOUT
[ AS ASSIGNMENT | AS IMPLICIT ]

1. 创建方法:

先使用 CREATE FUNCTION function_name (argument_type [, ...]) 创建一个转换函数;

然后 CREATE CAST (source_type AS target_type)
WITH FUNCTION function_name (argument_type [, ...])

2. 创建时可选择的选项的说明:

一般转换时的语句如下:

CAST(x AS typename) or x::typename

当两种类型的底层表示相同时, 可以使用 WITHOUT FUNCTION;
若想使用现成的 source_type 的 out 函数和 target_type 的 in 函数, 则可以使用 WITH INOUT;
当指定 AS ASSIGNMENT 时, 则当对表的一列进行赋值, 如 INSERT INTO 操作时, 会自动隐式地调用转换函数;
当指定 AS IMPLICIT 时, 则对于任何场合, 都会自动隐式地调用转换函数, 这个需要谨慎使用, 文档上有说明.

 


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。