2010-02-25 2 views

ответ

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.

Смежные вопросы