2012-03-14 13 views
0

これは、私はこれは私がMySQL変数を使用してprepare文を作成するにはどうすればよいですか?

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '); 
SET @outfilestmt = concat('SELECT * INTO OUTFILE ',"'", filename,"'",' FROM R' at line 6 

望ましい結果を得る誤りである

DELIMITER ## 
CREATE PROCEDURE exportFile() 
BEGIN 

DECLARE filename VARCHAR(255); 

SET filename = CONCAT('~/Sample',NOW(),'.csv')); 
SET @outfilestmt = concat('SELECT * INTO OUTFILE ',"'", filename,"'",' FROM Results') ; 

PREPARE stmt FROM @outfilestmt; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 

END ## 
DELIMITER ; 

を使用しようとしているストアドプロシージャです:

call exportFile 
--~/Sample2012-03-14-10:42:51.cvs 

call exportFile 
--~/Sample2012-03-14-10:42:52.cvs 

call exportFile 
--~/Sample2012-03-14-10:42:53.cvs 

答えて

1

Aを後にセミコロンがありません

SET filename = CONCAT('~/Sample',NOW(),'.csv')) 

と1つのブレースがあまりにも多い(Devartも指摘する。ありがとう)。それを

SET filename = CONCAT('~/Sample',NOW(),'.csv'); 

に変更してください。作品!

+0

AT tombomコロンを追加し、上記のエラーメッセージを更新しました – stackoverflow

+1

最後の括弧を削除することを忘れないでください - ')' – Devart

+1

これを追加したいと思っています。ありがとうDevart。 @ Gah_Jamn-it私の編集された答えを見る – fancyPants

関連する問題