2013-07-25 46 views
0

在所有文件中读取我写的SQL语句是这样的:文件夹与外部表的Oracle

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文件。我需要阅读每个文件并为每个文件创建单独的外部表。例如tableA必须为fileA创建。 是否有可能为此编写一个过程,将每个文件名读入循环,并将文件名变量替换为上述sql状态并在循环内运行sql语句?

回答

2

我几年前有一个非常类似的问题,我用汤姆凯特在他的世界著名asktom.oracle.com提供此过程:

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

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

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

祝你好运。

+0

非常感谢。我尝试运行java存储过程,它向我展示了*原因:未安装Java时尝试使用Java命令。 *操作:安装Java,或不要使用该命令。林不知道为什么说java没有安装。如果首先没有Java,我们如何安装sqldeveloper?它似乎正在寻找其他地方 – learningnothing

+0

也许它在服务器端?我真的不知道......我会查找它。 – tilley31

+0

您使用的是Oracle XE(Express Edition)吗?显然,Java代码在该版本中不起作用。 – tilley31