如果在给定位置存在值,则使用以下语法加载表:
INTO TABLE some_table
WHEN (2745:2769) <> BLANKS
( ... fields specification ... )
当值实际存在(加载记录)并且此位置有空格(未加载)时,它可以工作。但是当行短于2745个字符时,记录仍然被加载,这是不希望的。我该如何防止这种情况?
我尝试了以下所有内容并且完全相同:
WHEN (2745:2769) <> BLANKS
WHEN (2745:2769) <> ''
WHEN (2745:2769) <> ' '
WHEN (2745:2769) IS NOT NULL (this doesn't work at all actually)
答案 0 :(得分:1)
尝试使用临时表将所有数据加载到。然后使用泛型将临时表中的数据传输到表中 insert into ... select * from临时表,其中column不为null;
Oracle加载器实际上并不是尝试对数据文件进行操作/子句等的最佳位置。相反,在尝试加载文件之前确保文件尽可能正确(例如,通过perl解析器之前运行它),或者加载到临时表中,从临时表操作到最终表中。