将批量插入从sql server迁移到oracle

时间:2015-04-28 07:26:05

标签: sql-server oracle plsql

我必须从sql server迁移到oracle数据库我有义务更改我用于大量delimeted csf文件的批量查询。对于几乎所有各种各样的我在sql server中使用下面的批量查询。有谁知道oracle数据库中的等价查询是什么? :

ALTER PROCEDURE [dbo].[Bulk]
    @FileName NVarchar(128),
    @table NVarchar(400)
AS
BEGIN
declare @query NVarchar(max)
    set @Query =N'BULK INSERT ' + N'.' + 
      QUOTENAME(@table) + N' FROM '+ QUOTENAME(@FileName , '''')
      + N' WITH ( DATAFILETYPE =  ''char'', FIELDTERMINATOR = '','' , ROWTERMINATOR = ''\n'')'; 
--print @query
exec (@query)
END

1 个答案:

答案 0 :(得分:0)

所以你需要将文件中的数据导入到表中,对吗?

有几种方法可以做到这一点,但是如果您正在谈论需要高性能插入的批量数据,并且它将成为常规工作,那么我会设置一张外部牌桌。这可以从数据库中查询,并配置为从文件中读取数据。

可能您不需要将该数据插入表中,因为您可以将其视为可以查询的常规表。

或者你可以:

insert /*+ append */ into my_database_table
select *
from   my_external_table;

如果客户端计算机上有文件并需要将其插入数据库,则SQL * Loader将成为您的工具。它与外部表的技术非常相似。

查看Oracle文档,并对一个看起来合适的方法进行破解,如果遇到困难,请提出另一个问题,其中包含您需要插入的数据样本以及到目前为止的代码。