2014-01-11 82 views
0

我使用CFML脚本从Informix数据库备份CSV文件中的一些数据。问题是表有许多记录286906和我的脚本超时(即使我将它设置不),最好我能成功是260000有:Informix选择第一个250000,然后选择表中的最后250000条记录

SELECT FIRST 260000 
    APE1, APE2, CALLE, CODPOSTAL, DNI, FCADU, FENACI, LOCALIDAD, NOMBRE, NSS, PROV, TELEFONO 
FROM 
    mytable WHERE FCADU IS NOT NULL AND FENACI IS NOT NULL 

有没有什么办法来选择260000,然后剩下的其余的部分? 我试着用:

SELECT SKIP 260000 FIRST 520000 
    APE1, APE2, CALLE, CODPOSTAL, DNI, FCADU, FENACI, LOCALIDAD, NOMBRE, NSS, PROV, TELEFONO 
FROM 
    mytable WHERE FCADU IS NOT NULL AND FENACI IS NOT NULL 

,但我得到Error Executing Database Query. A syntax error has occurred.

+0

您正在使用的是哪个版本? '从sysmaster:sysdual'选择dbinfo('version','full') – ceinmart

+0

'指定的表(sysmaster:sysdual)不在数据库中' – bsteo

+0

必须相当古老,这会限制您的选择。在这种情况下使用sysdual实际上并不重要,所以试试'SELECT DISTINCT DBINFO('version','full')FROM systables' – RET

回答

1

您可以使用卸载语句从数据库中创建一个文件:

UNLOAD TO 'mytable.txt' SELECT * FROM mytable; 

也许这不是在CFML环境工程。所以你可以创建一个存储过程来卸载你的数据。

请参阅unload statement in stored procedure

0

这是你的脚本超时或数据库连接?从你的问题来看,它和我不一样,它不是正在超时的coldfusion模板,而是cfquery与数据库的连接。 cfquery标签有一个超时属性。然而,显然它不可靠,更好的选择是在coldfusion管理员的数据源的高级部分配置timout。

查理Arehart博客上有关该功能的位置: http://www.carehart.org/blog/client/index.cfm/2010/7/14/hidden_gem_in_cf9_admin_querytimeout

相关问题