DBSERVERNAME 和 SITENAME 运算符

DBSERVERNAME 运算符返回数据库服务器的 SQL 标识符,如同当前数据库所在的 GBase 8s 实例的 ONCONFIG 文件中 DBSERVERNAME 参数所定义的那样,或如同 GBASEDBTSERVER 环境变量中所指定的那样。SITENAMEDBSERVERNAME 运算符的关键字同义词。

您可使用 DBSERVERNAME 运算符来指定表的位置,将信息放到表内,或从表抽取信息。您可将 DBSERVERNAME 插入到简单字符字段内或使用它作为列的缺省值。

如果指定 DBSERVERNAME 作为 CREATE TABLE 或 ALTER TABLE 语句中的缺省列值,则该列必须为 CHAR、VARCHAR、LVARCHAR、NCHAR 或 NVARCHAR 数据类型。

如果您指定 DBSERVERNAMESITENAME 作为列的缺省值,则该列的大小应至少为 128 字节长。如果列的长度太小以至于不能存储缺省值,则在 INSERT 和 ALTER TABLE 操作期间,您会面临得到错误消息的风险。

下列示例在 DML 语句中使用 DBSERVERNAMESITENAME
  • 第一个 SELECT 语句返回 customer 表所在的数据库服务器实例的名称。(因为查询不受 WHERE 子句的限制,所以它为表中每行返回相同的 DBSERVERNAME 值。如果您在 projection 子句中包括 DISTINCT 关键字,则数据库仅返回 DBSERVERNAME 一次。)
  • 第二个语句将包含当前数据库服务器的名称的行添加到表。
  • 第三个语句返回在 host_tab.site_col 列中有当前数据库服务器的名称的所有行。
  • 最后的语句将当前数据库服务器的名称更改为其 customer_num 的 SERIAL 值为 120 的行中 customer.company 列的值:
SELECT DBSERVERNAME FROM customer;
                  
                  INSERT INTO host_tab VALUES ('1', SITENAME);
                  
                  SELECT * FROM host_tab WHERE site_col = DBSERVERNAME;
                  
                  UPDATE customer SET company = SITENAME
                  WHERE customer_num = 120;