转换一个Oracle表(数据)以填充稍微不同的Oracle表的最佳方法是什么?

Wil*_*ill 2 database migration oracle database-migration

我有两个Oracle表,一个旧表和一个新表.旧的设计很糟糕(比我的更多,请注意)但是有很多当前数据需要迁移到我创建的新表中.

新表有新列,不同列.

我想过只是编写一个PHP脚本或者一堆字符串替换的东西......显然这是一种愚蠢的方式来做到这一点.

我真的希望能够在整个过程中清理数据.有些它存储了标记(例如:"
名字
"),大量的空白等,所以我真的想在将它放入新表之前解决所有问题.

有没有人有这样的经历呢?我该怎么办?

谢谢 :)

chr*_*ris 8

我这样做了很多 - 您可以使用简单的select statememt进行迁移:

create table newtable as select 
 field1,
 trim(oldfield2) as field3,
 cast(field3 as number(6)) as field4,
 (select pk from lookuptable where value = field5) as field5,
 etc,
from
 oldtable
Run Code Online (Sandbox Code Playgroud)

对于像清理和转换数据这样的中等语言(例如php等),你无法做到这一点.

对于更复杂的清理,你总是可以创建一个可以解决繁重问题的sql函数,但是我已经清理了一些非常糟糕的数据而没有使用它.不要忘记在oracle中你有解码,案例陈述等.