您可以使用语法定义 MONEY 列。
必须指定 1 到 32 之间的整数,包括 1 和 32。缺省 precision 为 16。
scale 必须为 1 到 precision 之间的整数。如果省略 scale,数据库服务器会提供数据库语言环境定义的缺省 scale。对于缺省语言环境(美国英语)而言,缺省值为 2,如图中所示。
在内部,数据库服务器将 MONEY 值存储为 DECIMAL 值。precision 参数定义总有效位数,scale 参数定义十进制分隔符右侧的总位数。例如:如果将列定义为 MONEY(8,3),那么列最多可以包含八位数,而且其中三位为十进制分隔符右侧的位数。列中数据值的示例为 12345.678。
如果从 MONEY 列的声明中省略 scale 参数,数据库服务器会提供语言环境定义的小数位。对于缺省语言环境(美国英语),数据库服务器使用缺省小数位 2。它按与数据类型 DECIMAL(precision,2) 相同的内部格式存储数据类型 MONEY(precision) 。例如:如果将列定义为 MONEY(10),数据库服务器使用与数据类型 DECIMAL(10,2) 相同的格式创建列。列中的数据值可能是 12345678.90。
对于非缺省语言环境,如果在声明 MONEY 列时省略 scale,数据库服务器声明列具有与使用特定于语言环境的缺省小数位的 DECIMAL 数据类型相同的内部格式。例如:如果将列定义为 MONEY(10),并且语言环境将缺省小数位定义为 4,数据库服务器按与 DECIMAL(10,4) 相同的格式存储列的数据类型。列中的数据值可能是 123456.7890。
大多数欧洲语言的 GLS 代码集可以支持货币值中的欧元符号。有关 MONEY 数据类型的完整语法,请参阅 GBase 8s SQL 指南:语法。有关 MONEY 数据类型的完整描述,请参阅《GBase 8s SQL 指南:参考》。