【问题标题】:Creating a table in oracle using sql server table在oracle中使用sql server table创建表
【发布时间】:2011-08-23 00:44:20
【问题描述】:

我在 SQL Server 2008 R2 中有一个表。它包含 1M 或更多记录。现在我想在 oracle 中创建一个与 SQL Server 2008 R2 中内容相同的表。

【问题讨论】:

    标签: sql-server oracle sql-server-2008 oracle10g data-transfer


    【解决方案1】:

    有几种方法可以做到这一点。你可以先看看下面的教程:Migrating a Microsoft SQL Server Database to Oracle Database 11g

    我过去曾使用以下步骤完成此任务:

    1. 在 Oracle 数据库中创建表(仅模式,而非数据)。
    2. 将数据从 SQL 服务器导出到 1 个或多个 CSV(或任何其他分隔符文件(我建议创建不超过 100,000 条记录的文件)
    3. 使用 SQL*Loader(一个 oracle utilily)将数据从文件加载到 oracle。

    Oracle SQL*Loader 实用程序是一个命令行工具,可让您将数据从文件加载到 Oracle。它使用控制文件来指定源文件、其结构和加载策略。

    与使用 INSERT 语句加载相比,使用该工具的优势在于加载速度。由于此工具绕过了日志文件,因此非常实用。

    这里是 SQL 加载器教程的链接:SQL*Loader FAQ

    来自本教程:

    用法:

     sqlldr username/password@server control=loader.ctl
    

    控制文件示例:

    (1) load data
    (2)    infile 'c:\data\mydata.csv'
    (3)   into table emp
    (4)    fields terminated by "," optionally enclosed by '"'        
    (5)    ( empno, empname, sal, deptno )
    

    第 1 行:指定要将数据加载到表中

    第 2 行:指定包含数据的源文件

    第 3 行:指定目标表

    第 4 行:指定列分隔符(示例中为逗号),字符串值可以用 " 字符括起来。

    第 5 行:指定文件中列的顺序

    数据文件示例(对应上面的控制文件):

    10001,"Scott Tiger", 1000, 40
    10002,"Frank Naude", 500, 20
    

    希望对您有所帮助。

    科比

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      相关资源
      最近更新 更多