oracle 可以导入ora scn值而不更改吗?

rqqzpn5f  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(181)

我有一个表,它已启用rowdempendency,我想导出/导入到另一个架构具有相同的ora_scn没有改变。但使用数据泵导出/导入ora scn正在改变。有没有办法保持ora scn不变?我尝试了以下方法:

drop table test_MD
/
Create table test_MD 
(id number(3) null, 
name varchar2(100) null)
rowdependencies
/
 insert into test_MD (id , name) values (1,'ONE')
/
commit
/
 select id,name,ORA_ROWSCN from TEST_MD
/
insert into test_MD (id , name) values (2,'TWO')
/
commit
/
 select id,name,ORA_ROWSCN from TEST_MD
 -- ORA_ROWSCN =230702466 230702475
/
expdp testschema/testschema@testsrvr tables=TEST_MD directory=scehmadir dumpfile=MD_DMP.dmp logfile=expdpEMP_DEPT.log
/
alter table TEST_MD rename to TEST_MD1
/
impdp testschema1/testschema1@testsrvr tables=TEST_MD directory=scehmadir dumpfile=MD_DMP.dmp logfile=impdpEMP_DEPT.log
/
select id,name,ORA_ROWSCN from TEST_MD1
/
ORA_ROWSCN = 230708371 230708371

字符串
我的问题在这里,我希望价值保持不变
-- ORA_ROWSCN =230702466 230702475
有可能吗?或者有其他的方法?

nc1teljy

nc1teljy1#

不可以,您无法导出和导入Oracle数据并可靠地保留ORA_ROWSCN值。事实上,即使您不更改任何内容,也无法可靠地保留现有数据的ORA_ROWSCN值。
请仔细阅读SQL语言参考中关于ORA_ROWSCN伪函数的冗长描述。该描述以简单的短语“不应将ORA_ROWSCN视为精确SCN”开始,然后重复多次,因为它很容易将ORA_ROWSCN用作精确值。
但是ORA_ROWSCN永远不会是精确和稳定的。它似乎会随机地为同一行更改,具体取决于您查询该行的方式。不幸的是,我无法创建一个简单的测试用例来验证此行为。当问题发生在我身上时,它并不经常发生,手册也没有完整地记录此行为。
放弃所有的希望。即使你得到了一个今天有效的概念证明--也许某些物理复制机制,如VM克隆、PDB克隆或可传输表空间可以创建看似相似的ORA_ROWSCN值--这些值也永远不会可靠稳定。

相关问题