0

我想将旧数据复制到新数据库。我的旧数据库中有一个地址列,数据类型为 ntext,但在新数据库中,我必须使用 3 列来放置地址(地址 1、地址 2、地址 3,数据类型为 nvarchar(60))

如何将我的 OLD DB 中的字符串拆分为我的 NEW DB?

例如:来自旧数据库的查询:

`select address from client`

result : 

Jl. Taman Crystal 2 Blok TC 2 No.79 RT.001/018, Cluster Crystal Residence, Summarecon Serpong, Pakulonan Barat - Kelapa Dua
4

1 回答 1

1

这实际上取决于您需要处理多少数据。

对于小型集(比如少于 10K 左右),我会这样做:

  1. 创建一个临时表,其中包含旧地址和 3 个新地址的键空间。
  2. 将地址复制到临时表中。
  3. 为不同的部分编写一个“提取”查询并逐个运行它们。例如,要获取 address1 列,您可以使用 left 函数直到位置,

    INSERT INTO STAGE (address1)
    SELECT LEFT(address,location(address,','))
    

一旦你完成了这些临时查询中的每一个,你就可以对结果运行一些查询,并确保你对它感到满意。如果您遇到问题,请修改您的查询并再次运行它。

一旦您对 STAGE 感到满意,就将其复制到您的决赛桌。

对于更大的集合,我会编写一个具有良好错误检查、报告和异常表等的程序。一个真正的解析器和 ETL。对于您可以手动查看和处理的少量数据,这不值得。

于 2014-05-07T03:36:01.417 回答