发行说明


4.14 有关使用专用寄存器定义的视图的迁移问题

如果专用寄存器 USER 或 CURRENT SCHEMA 用来定义视图列的话,则视图将在数据库迁移之后变得不可用。例如:

   create view v1 (c1) as values user

在版本 5 中,USER 和 CURRENT SCHEMA 为数据类型 CHAR(8),但自版本 6 开始,它们已被定义为 VARCHAR(128)。在此示例中,如果视图是在版本 5 中创建的,则列 c1 的数据类型为 CHAR,且在数据库迁移之后它仍为 CHAR。如果是在迁移之后使用该视图,它将在运行时进行编译,但会失败,原因是数据类型不匹配。

解决方案是删除该视图,然后重新创建它。在删除该视图之前,通过查询 SYSCAT.VIEWS 目录视图来捕获用来创建该视图的语法。例如:

select text from syscat.views where viewname='<>'


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]