CREATE CAST

CREATE CAST用于定义数据类型之间的转换,CAST的创建需要是source_type的所有者,并且需要具备Superuser权限。本文为您介绍CREATE CAST的用法。

语法

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

参数说明如下表所示。

参数

描述

source_type

该转换的源数据类型。

target_type

该转换的目标数据类型。

WITH INOUT

表示该转换为I/O转换。

该转换通过调用源数据类型的输出函数来执行,并将结果传给目标数据类型的输入函数。

AS ASSIGNMENT

表示该转换可以在赋值模式下隐含调用。

AS IMPLICIT

表示该转换可以在任意环境里隐含调用。

示例

通常,在Filter中比较字符类型和数值类型时,默认不进行转换。您可以使用CREATE CAST语句,创建一个支持比较字符类型和数值类型的CAST,示例语句如下。

CREATE TABLE test_cast(id text);
INSERT INTO test_cast VALUES(888);
SELECT * FROM test_cast aa WHERE id > 888;
CREATE CAST (text AS integer) WITH INOUT AS IMPLICIT;
SELECT * FROM test_cast aa WHERE id > 888;

更多关于CREATE CAST的详情,请参见PostgreSQL CREATE CAST