我必须从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
答案 0 :(得分:0)
所以你需要将文件中的数据导入到表中,对吗?
有几种方法可以做到这一点,但是如果您正在谈论需要高性能插入的批量数据,并且它将成为常规工作,那么我会设置一张外部牌桌。这可以从数据库中查询,并配置为从文件中读取数据。
可能您不需要将该数据插入表中,因为您可以将其视为可以查询的常规表。
或者你可以:
insert /*+ append */ into my_database_table
select *
from my_external_table;
如果客户端计算机上有文件并需要将其插入数据库,则SQL * Loader将成为您的工具。它与外部表的技术非常相似。
查看Oracle文档,并对一个看起来合适的方法进行破解,如果遇到困难,请提出另一个问题,其中包含您需要插入的数据样本以及到目前为止的代码。