Oracle ORA-01882在尝试对表执行任何操作时

Oracle ORA-01882在尝试对表执行任何操作时,oracle,Oracle,我在Oracle 11.2.0.4.0中创建了一个虚拟列并在其上建立了索引,其方式如下: ALTER TABLE EX_TABLE ADD GREATEST_T GENERATED ALWAYS AS ( GREATEST( NVL(START_T, TIMESTAMP '1970-01-01 00:00:00.000000001'), NVL(END_T, TIMESTAMP '1970-01-01 00:00:00.000000001'),

我在Oracle 11.2.0.4.0中创建了一个虚拟列并在其上建立了索引,其方式如下:

ALTER TABLE EX_TABLE ADD GREATEST_T GENERATED ALWAYS
    AS (
      GREATEST(
        NVL(START_T, TIMESTAMP '1970-01-01 00:00:00.000000001'),
        NVL(END_T, TIMESTAMP '1970-01-01 00:00:00.000000001'),
        NVL(SUSPEND_T, TIMESTAMP '1970-01-01 00:00:00.000000001'),
        NVL(RESUME_T, TIMESTAMP '1970-01-01 00:00:00.000000001')
      )
    );
CREATE INDEX IDX_EX_TABLE_GREATEST_T ON EX_TABLE (GREATEST_T);
之后,我在尝试从
EX_TABLE
表中选择smtg时,得到了
ORA-01882:timezone region not found
(其他表都可以)。我想我又一次遇到了这个问题,所以我删除了索引
IDX\u EX\u TABLE\u max\u T
。但错误仍然存在,我甚至无法删除导致我认为问题的
magest\T
列。 这看起来不是特定于机器的(尝试了不同的客户端/电脑)


如何处理这个问题有什么建议吗?

为什么你不能删除这个专栏?表的其余部分的定义是什么,例如,
dbms\u metadata.get\u ddl
?@AlexPoole当我尝试执行
alter table EX\u table drop COLUMN magest\u DATE
I get
ORA-01882…
时,表的定义如下所示:这说明了问题,DDL中有逗号而不是句点,我看不出您是如何使用该定义创建表的;NLS字符不适用于文本。您应该在
create
alter
上获得ORA-01882。有趣。我无法在11.2.0.4中重新创建它是从该脚本创建的,还是导入的(imp或impdp?),或者是通过其他不太常见的方法创建的,可能是通过OCI?哦,好吧,根据MOS注释1611785.1,链接问题中的错误在11.2.0.4.2中得到修复。这就是为什么我不能重现它。您可能可以应用PSU,但不确定这是否会解决现有问题,您可能仍然需要重新创建表(当然,如果存在FK引用,这是一件非常痛苦的事情)。