所有者名称规范 | 兼容 ANSI 的数据库的做法 |
---|---|
忽略 | 严格按照登录名存储在系统中的方式读取或存储所有者,但如果用户不是所有者,则会返回错误。 |
不带引号指定 | 以大写字母读取或存储所有者 |
包括在引号中 | 完全按照输入读取或存储所有者 。另见使用引号和引用 gbasedbt 用户拥有的表。 |
如果在兼容 ANSI 的数据库中创建或重命名数据库对象时指定所有者名称,必须在数据访问语句中包含所有者名称。当访问不属于您的数据库对象时您必须包含所有者名称。
CREATE VIEW 'nancy'.njcust AS SELECT fname, lname FROM customer WHERE state = 'NJ';
SELECT * FROM nancy.njcust;
在 GBase 8s 分布式查询中,如果所有者名称不在引号中,则远程数据库遵循本地数据库的大小写约定。如果本地数据库是兼容 ANSI 的,则远程数据库将所有者名称处理为 uppercase。如果本地数据库是不兼容 ANSI 的,则远程数据库将所有者名称处理为 lowercase。
因为所有者名称是授权标识符,而不是 SQL 标识符,因此可以在数据库的 SQL 语句中的单引号(')之间包含所有者,其中 DELIMIDENT 环境变量指定支持分隔标识符,从而需要双引号(")围绕 SQL 标识符。