Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

sa_materialized_view_can_be_immediate 系统过程

返回是否可将指定的实例化视图定义为快速视图。

语法
sa_materialized_view_can_be_immediate( 
view_name 
, owner_name
)
参数
  • view_name   此 CHAR(128) 参数用于指定实例化视图的名称。如果 view_name 为 NULL,则返回 [未找到表...] 错误。

  • owner_name   此 CHAR(128) 参数用于指定实例化视图的所有者。如果 owner_name 为 NULL,则返回 [未找到表...] 错误。

注释

指定的手动视图是否可以变为快速视图有某些限制。此系统过程用于确定是否允许此更改。有关创建快速视图的其它限制的列表,请参见快速视图的附加限制

sa_materialized_view_can_be_immediate 系统过程返回指定实例化视图的以下信息。

列名 数据类型 说明
SQLStateVal CHAR(6) 返回的 SQLSTATE。
ErrorMessage LONG VARCHAR 与 SQLSTATE 对应的错误消息。

结果集中的每一行与返回的视图的一个 SQLSTATE 相对应。因此,如果实例化视图定义违反多条限制,结果会包含视图的多个行。

可将此系统过程的输出与 sa_materialized_view_info 系统过程的输出相结合,以获取有关视图状态和能否将其转换为快速视图的信息。请参见sa_materialized_view_info 系统过程中的 "示例" 部分。

权限

DBA 权限,或对 DBO 拥有的过程的执行权限。

另请参见
副作用

指定实例化视图的所有元数据和所有依赖性都将装载到服务器高速缓存中。

示例

执行以下语句,创建手动视图 view10,然后刷新该视图。

CREATE MATERIALIZED VIEW view10
   AS (SELECT C.ID, C.Surname, sum(P.UnitPrice) as revenue, C.CompanyName, SO.OrderDate
         FROM Customers C, SalesOrders SO, SalesOrderItems SOI, Products P
         WHERE C.ID = SO.CustomerID
         AND SO.ID = SOI.ID
         AND P.ID = SOI.ProductID
         GROUP BY C.ID, C.Surname, C.CompanyName, SO.OrderDate);
REFRESH MATERIALIZED VIEW view10;

可使用以下查询找出无法将 view10 转变为快速视图的原因:

SELECT SQLStateVal AS "SQLstate", ErrorMessage AS Description 
   FROM sa_materialized_view_can_be_immediate( 'view10', 'DBA' ) 
   ORDER BY SQLSTATE;
SQLstate 说明
42WC3 实例化视图 view10 已经初始化,所以不能转变为快速视图。
42WCA 实例化视图 view10 在不可为空的列上没有唯一索引,所以不能转变为快速视图。
42WC6 COUNT(*) 需要作为 SELECT 列表的一部分,所以实例化视图不能转变为快速视图。
42WC7 实例化视图在非集合不可为空的列上没有唯一索引,所以不能转变为快速视图。