10.4. 储值

根据以下步骤,将要插入表中的值转换为目标列的数据类型。

值存储类型转换

示例 10.9. character存储类型转换

对于声明为character(20)的目标列,以下语句显示存储值的大小正确:

CREATE TABLE vv (v character(20));
INSERT INTO vv SELECT 'abc' || 'def';
SELECT v, octet_length(v) FROM vv;

          v           | octet_length
----------------------+--------------
 abcdef               |           20
(1 row)

true 发生的是,默认情况下,两个未知 Literals 被解析为text,从而将||运算符解析为text并置。然后,运算符的text结果转换为bpchar(“ _blank-chard”,character数据类型的内部名称)以匹配目标列类型。 (由于从textbpchar的转换是二进制强制的,因此此转换不会插入任何实函数调用.)最后,在系统目录中找到了调整大小的函数bpchar(bpchar, integer, boolean)并将其应用于运算符的结果和存储的列长。此特定于类型的功能执行所需的长度检查并添加填充空间。

上一章 首页 下一章