Oracle10g 当timestamp>;12345678900

Oracle10g 当timestamp>;12345678900,oracle10g,sql-loader,Oracle10g,Sql Loader,我有一个相当大的文件(50mb),其中第一个字段是unix时间戳。 但是,我不想加载整个文件,我只需要它的一半,其中timestamp>一些参数化的timestamp sqlldr似乎只允许when子句中的=和条件。加载文件然后删除不需要的记录所需的时间太长 除了使用sqlldr之外,是否还有其他性能相当的替代方案?(我已经在使用direct=true。) 我正在考虑使用awk创建一个包含我所需数据的文件副本,awk在这方面相当有效,但在我走这条路之前,我想在这里征求更好的建议。这似乎表明在控制

我有一个相当大的文件(50mb),其中第一个字段是unix时间戳。 但是,我不想加载整个文件,我只需要它的一半,其中timestamp>一些参数化的timestamp

sqlldr似乎只允许when子句中的=和条件。加载文件然后删除不需要的记录所需的时间太长

除了使用sqlldr之外,是否还有其他性能相当的替代方案?(我已经在使用direct=true。)

我正在考虑使用awk创建一个包含我所需数据的文件副本,awk在这方面相当有效,但在我走这条路之前,我想在这里征求更好的建议。

这似乎表明在控制文件中使用infle“-”将允许重定向,如:

awk [various switches] sourcefile | sqlldr [sqlldr options]
但我还没有测试过

假设您可以访问数据库服务器上的文件系统,则可以使用数据文件的外部表规范,然后使用SQL从外部表“加载”数据。类似地,您可以将数据加载到暂存表中;然后运行SQL脚本以

INSERT INTO TARGET_TABLE 
SELECT * FROM STAGING_TABLE 
 WHERE TIMESTAMP > :PARAMETER;
TRUNCATE TABLE STAGING_TABLE;