2010-02-25 105 views
0

我们正在使用SQL Server 2005. 我想创建存储过程的输出文件。如何将存储过程的输出存储到磁盘上

+0

需要更多细节... – 2010-02-25 12:11:31

+0

哪种语言?任何特定的格式?什么操作系统? – 2010-02-25 12:12:21

+0

哪个RDBMS?!?! – 2010-02-25 12:27:08

回答

2

如果你正在使用MySQL,你可能需要从以下几点入手:

DELIMITER $$ 

CREATE PROCEDURE export_dynamic(IN file_path char(64)) 
BEGIN 
    SET @sql = CONCAT('SELECT * INTO OUTFILE ', 
         "'", file_path, "'", ' FROM Table1'); 

    PREPARE stmt1 FROM @sql; 
    EXECUTE stmt1; 
    DEALLOCATE PREPARE stmt1; 
END $$ 

DELIMITER ; 

从借来的:MySQL Forums :: General :: SELECT .. INTO OUTFILE not possible with stored procedure parameters?

如果你想硬编码的文件名在存储过程中,则没有必要使用事先准备好的声明:

DELIMITER $$ 

CREATE PROCEDURE export_static() 
BEGIN 
    SELECT * INTO OUTFILE '/tmp/file_name.txt' FROM Table1; 
END $$ 

DELIMITER ; 

如果你得到一个Can't create/write to file错误,请务必检查以下参考:MySQL 5.1 Reference Manual :: Can't create/write to file