在Teradata中创建视图期间的时间错误9330

时间:2016-10-31 20:12:15

标签: sql teradata temporal-database

我有一个VALIDTIME和TRANSACTIONTIME列的表格。

CREATE MULTISET TABLE T.TestTable ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      KeyId VARCHAR(50) NOT NULL,
      ValidityPeriod PERIOD(TIMESTAMP(6) WITH TIME ZONE),
      BusinessTimePeriod PERIOD(TIMESTAMP(6) WITH TIME ZONE) NOT NULL AS VALIDTIME,
      TransTimePeriod PERIOD(TIMESTAMP(6) WITH TIME ZONE) NOT NULL AS TRANSACTIONTIME
      )
      PRIMARY INDEX KeyNUPI ( KeyId );

视图数据库中有上表的视图。

REPLACE VIEW TV.TestView
AS LOCKING ROW FOR ACCESS 
NONSEQUENCED VALIDTIME
SELECT
    KeyId,
    ValidityPeriod,
    BusinessTimePeriod,
    TransTimePeriod 
FROM T.TestTable;

上面的物体已经存在,我无法触碰它们。

现在,我必须在上面的视图上创建视图。这个新的应该作为一个表,以后会建立许多视图。

REPLACE VIEW T.AnotherTestTable
AS NONSEQUENCED VALIDTIME
SELECT 
    KeyId,
    ValidityPeriod,
    BusinessTimePeriod,
        TransTimePeriod 
FROM TV.TestView
WHERE KeyId = 'ABCD';

所以,远没有问题。现在如果我尝试创建另一个视图,它会显示Failure 9330 ValidTime qualifier requires at least one table with ValidTime

REPLACE VIEW TV.AnotherTestView
AS
NONSEQUENCED VALIDTIME --many views with CURRENT VALLIDTIME and other options will also be built
SELECT 
    KeyId,
    ValidityPeriod,
    BusinessTimePeriod,
    TransTimePeriod 
FROM T.AnotherTestTable;

感谢您解决此问题的任何帮助。

0 个答案:

没有答案