从文件夹中的所有文件读取到外部表oracle

时间:2013-07-25 15:47:27

标签: sql oracle

我写了一个像这样的sql语句:

 CREATE TABLE TableA 
   (    "Col1" VARCHAR2(5 BYTE), 
    "Col2" VARCHAR2(2 BYTE), 

   ) 
   ORGANIZATION EXTERNAL 
    ( TYPE ORACLE_LOADER
      DEFAULT DIRECTORY "DIR"
      ACCESS PARAMETERS
      ( records delimited by newline
fields terminated by ','
optionally enclosed by '"'
    )
      LOCATION
       ( 'TableA.csv'
       )
    )
   REJECT LIMIT UNLIMITED ;

我的'DIR'目录中有120个.csv文件。我需要读入每个文件并为每个文件创建单独的外部表。例如,必须为fileA创建tableA。 是否可以为此编写一个过程,将每个文件名读入循环并将filename变量替换为上述sql状态并在循环中运行sql语句?

1 个答案:

答案 0 :(得分:2)

几年前我遇到了一个非常类似的问题,我使用了Tom Kyte在他的世界着名的asktom.oracle.com提供的这个程序:

http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:439619916584

基本上,您必须创建一个读取目录的java过程,然后创建一个使用该java过程读取目录中文件的PL / SQL存储过程。

看看它,并告诉我它是怎么回事......我正在寻找我多年前制作的代码,但似乎无法找到它。这是一个不同的工作。

祝你好运。