用户定义的例程和扩展数据类型

superstores_demo 数据库使用用户定义的例程 (UDR) 和扩展数据类型。

UDR 是由您定义的例程,可在 SQL 语句或其他 UDR 中进行调用。UDR 可返回值,也可不返回值。

GBase 8s 的数据类型系统是可扩展和灵活的系统,支持创建下列各种数据类型:

有关创建和使用 UDR 和扩展数据类型的信息,请参阅 GBase 8s 用户定义的例程与数据类型开发者指南

如下所示,superstores_demo 数据库在 UDR 中创建单值数据类型 percent:
CREATE DISTINCT TYPE percent AS DECIMAL(5,5);
DROP CAST (DECIMAL(5,5) AS percent);
CREATE IMPLICIT CAST (DECIMAL(5,5) AS percent);
superstores_demo 数据库创建下列命名行类型

location_t 定义

location_id               SERIAL
loc_type                  CHAR(2)
company                   VARCHAR(20)
street_addr               LIST(VARCHAR(25) NOT NULL)
city                      VARCHAR(25)
country                   VARCHAR(25)

loc_us_t 定义

state_code               CHAR(2)
zip                      ROW(code INTEGER, suffix SMALLINT)
phone                    CHAR(18)

loc_non_us_t 定义

province_code            CHAR(2)
zipcode                  CHAR(9)
phone                    CHAR(15)

name_t 定义

first               VARCHAR(15)
last                VARCHAR(15)

customer_t 定义

customer_num                   SERIAL
customer_type                  CHAR(1)
customer_name                  name_t
customer_loc                   INTEGER
contact_dates                  LIST(DATETIME YEAR TO DAY NOT NULL)
cust_discount                  percent
credit_status                  CHAR(1)

retail_t 定义

credit_num                  CHAR(19)
expiration                  DATE

whlsale_t 定义

resale_license              CHAR(15)
terms_net                   SMALLINT

ship_t 定义

date                  DATE
weight                DECIMAL(8,2)
charge                MONEY(6,2)
instruct              VARCHAR(40)