小编Ken*_*war的帖子

截断单个分区后,其主键的索引变得不可用,并且对该分区的所有插入/更新都失败

我有一个分区表:SAMPLE_PARTITIONED_TBL基于PERIOD_ID数字字段(数据集:201001...201212.. 等等)有 60 个分区(没有子分区)。该表有几个本地索引,但由于某种原因,问题出在 PK 索引上。我在另一个模式中有相同的 DDL,它在那里工作正常。不确定 tio 寻找什么来解决这个问题。

我正在使用 Informatica(ETL 工具)将数据加载到该表中。在加载之前,我们会截断分区表:

SQL> ALTER TABLE owner_name.SAMPLE_PARTITIONED_TBL 
   2 TRUNCATE PARTITION SMPL_201001 DROP STORAGE;
Run Code Online (Sandbox Code Playgroud)

当加载开始时,我收到以下错误:

Message: Database errors occurred: 
ORA-01502: index 'owner_name.SAMPLE_PARTITIONED_TBL_PK' or 
partition of such index is in unusable state
Run Code Online (Sandbox Code Playgroud)

查看索引的状态...

SQL> select STATUS from all_indexes
  2  where INDEX_NAME like 'SAMPLE_PARTITIONED_TBL_PK';

STATUS
--------
UNUSABLE
Run Code Online (Sandbox Code Playgroud)

现在在执行SQL> ALTER INDEX owner_name.SAMPLE_PARTITIONED_TBL_PK REBUILD;本地分区索引返回STATUS=VALID状态后,加载可以继续没有问题。


更新:

根据下面@Mat 的观察,我正在检查 PK 索引是否在本地分区:

SQL> select * from all_indexes where table_name = 'SAMPLE_PARTITIONED_TBL'; …
Run Code Online (Sandbox Code Playgroud)

index oracle-11g partitioning alter-table truncate

5
推荐指数
1
解决办法
2万
查看次数

当基表不存在时,为什么会收到不正确的错误“ORA-01775:同义词循环链”?

我使用 Informatica 来管理一些将数据加载到 Oracle 9i 数据仓库的 ETL 过程。

今天,我在 Informatica 会话日志中收到以下错误:

Message: Database driver error...
CMN_1022 [DELETE FROM SOME_TABLE 
WHERE PERIOD_NAME = 'OCT-12'

ORA-01775: looping chain of synonyms

Database driver error...
Function Name : executeDirect
SQL Stmt : DELETE FROM SOME_TABLE 
WHERE PERIOD_NAME = 'OCT-12'
Oracle Fatal Error
Database driver error...
Function Name : ExecuteDirect

Oracle Fatal Error
]
Run Code Online (Sandbox Code Playgroud)

现在这是一个印刷错误,表名拼写错误。Oracle 错误显然让我们走错了方向……所以只是想了解为什么在同义词没有问题的情况下会显示此错误。

oracle-9i informatica

3
推荐指数
1
解决办法
2万
查看次数