如何使用sql-loader跳过最后的记录?

时间:2016-05-18 03:50:05

标签: oracle plsql

我们正在使用平面文件。但是如何跳过平面文件中的最后记录。

3 个答案:

答案 0 :(得分:0)

您可以使用SKIP子句跳过标题行,但要跳过必须使用WHEN子句的最后记录。通常,您的尾随记录(最后记录)将与文件中的其他记录不同,并且应该有一个指示符来指定这是一个预告片记录。您需要在控制文件中构造这样的条件,以使此条件不满意。

以下是有关WHEN子句的Oracle文档。

http://docs.oracle.com/cd/B14117_01/server.101/b10825/ldr_control_file.htm#i1005657

以下是有条件加载的一些示例。

http://www.orafaq.com/wiki/SQL*Loader#Conditional_Load

答案 1 :(得分:0)

如果您的尾记录始终以T开头,请在您的ctl文件中使用以下内容! Haven在一段时间内对它进行了测试,但是在我最后一次加载临时表时,我一直在为我工作。

    LOAD DATA
    INFILE 'file.dat' BADFILE 'file.bad' DISCARDFILE 'file.dis'
    APPEND
    INTO TABLE tablename
-- This will skip the tail record
    WHEN (01) <> 'T'
    (
    column names);

答案 2 :(得分:0)

您的原始帖子需要更多详细信息但是为了完整性,控制文件选项子句有一个LOAD = n选项,告诉sqlldr要加载多少行。如果您有100行并且不想加载最后5行,请指定LOAD = 95。