提问:GBase8s虚拟列与oracle数据库虚拟机安装虚拟列有什么差异?

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

使用oracle模式后jdbc会有如下影响:

1)支持兼容oracle的语法sql(具体支持程度参考GBase 8s数据库的兼容性)

如图1,数据的迁移过程由两部分组成。第一部分是迁移数据库的结构,主要包括数据库对象的迁移;第二部分是将数据迁移到目标数据库中。其中,真正的数据迁移是在第二部分完成的。对于数据的迁移,通常情况下是要暂停应用程序,这样可以保证迁移前后的数据一致性和完整性。使用常规方法,如果数据量很大的话,则需要较长的应用停机时间窗口。在对时间窗口要求比较小的应用做迁移时,可以使用第三方工具(如CDC)来进行增量数据的迁移,这样可以最大限度的减少停机时间,甚至可以实现Oracle到GBase

FROM 子句可包括对迭代器函数的调用,来为查询指定来源。迭代器函数是用户定义的功能,多次返回到它的调用 SQL 语句,每次返回至少一个值。
您可使用虚拟的表接口查询迭代器 UDR 的返回结果集。使用此语法来在 FROM 子句中调用迭代器函数:

元素 描述 限制 语法
column 在此为 table 中的虚拟列声明的名称 在 table 中的 column 名称之中必须是唯一的,且不可包括限定符。 标识符
iterator 迭代器函数的名称 必须注册在该数据库中 标识符
table 在此为持有 iterator 结果集的虚拟表声明的名称 不可包括限定符 标识符
在早于 GBase 8s 10.5 的版本中,要求有关键字 FUNCTION(或 PROCEDURE)。在此版本中,这些对 SQL 的 ANSI/ISO 标准的关键字扩展是可选的,且无效。下列两个指定 fibGen( ) 作为迭代器函数的查询规范,是等同的:
仅可在此查询的上下文之内引用 table。在 SELECT 语句终止之后,虚拟表不再存在。
列的数目必须与通过迭代器返回的值的数量相匹配。外部的函数可返回不超过一个值(但那可为集合数据类型)。SPL 例程可返回多个值。
然而,如果迭代器 table 函数的任何参数是聚集表达式,则数据库服务器发出错误 -595.
例如,要引用该 SELECT 语句的其他部分中的虚拟 table,在 WHERE 子句或 HAVING 子句中,您必须在 FROM 子句中声明它的名称和虚拟的列名称。如果您在 Projection 子句的 Select 列表中使用星号标记,则无需在 FROM 子句中声明 table 名称或 column 名称:
要获取在查询中使用迭代器函数的更多信息和示例,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
如果 FROM 子句指定多个表引用,则该查询可从几个表或视图连接行。
连接条件指定来自要被连接的每一表的至少一列之间的关系。由于要对连接条件中的列进行比较,因此它们必须有可兼容的数据类型。
注: 在缺省情况下,数据库服务器连接表和视图所依的顺序不依赖于它们在 FROM 子句中被引用的顺序。要强制被连接的表的顺序与 FROM 子句顺序相匹配,则您可在 SELECT 关键字之后指定 ORDERED 优化器伪指令。要获取更多信息,请参阅 连接顺序伪指令 部分。
SELECT 语句的 FROM 子句可指定几种连接类型。
FROM 子句关键字 相应的结果集
CROSS JOIN 笛卡尔积(所有可能的行的对)
LEFT OUTER JOIN 一表的满足条件的行,和另一表的所有行
FULL OUTER JOIN 来自两表的 INNER 连接的所有行的并集,以及在其他表中没有匹配的每一表的所有行(在其他的表的被选择的行中使用 NULL 值)
在关系模型的文献中最后四个类别统称为“连接类型”;CROSS JOIN 忽略在被连接的表中特定的数据值,返回笛卡尔积作为它的结果集:每个可能的行的对,其中,每一对中的一行来自每一表。
在内(或简单的)连接中,结果仅包含满足连接条件的行的组合。外连接保留可能会被内连接废弃的那些行。在外连接中,结果包含满足连接条件的行的组合以及来自主表的可能会被废弃的那些行。在来自从表选择的列中,来自主表但在从表中没有相匹配的行的那些行包含 NULL 值。
GBase 8s 对于左外连接支持两种不同的语法:
对于外连接,数据库服务器的较早版本仅支持 GBase 8s 扩展语法。 GBase 8s 继续支持这种传统语法,但在 SQL 语言中对于连接查询使用符合 ISO/ANSI 标准的语法,提供更大的灵活性。然而,在视图定义中, GBase 8s 扩展语法不要求具体化的视图,因此它可能导致性能劣势。
如果您使用符合 ANSI 的语法来指定 FROM 子句中的连接,则对于同一查询块中的所有外连接,还必须使用符合 ANSI 的语法。因此,您不可仅以 OUTER 关键字开启另一外连接。例如,下列查询不是有效的:

我要回帖

更多关于 oracle数据库虚拟机安装 的文章

 

随机推荐