次のコードは、MySQLクライアント内で実行されるか、mysqlにパイプされて実行されます。私はJavaの 内部クエリとしてそれを実行しようとすると、私は、SQL文の実行エラーJava内からクエリを実行して関数を作成する
エラー com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException取得する:あなたは、あなたのSQL構文でエラーが発生しているが、あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が「デリミタ@」の近くで使用するようにしてください。
これは私が問題を抱えていた最初のクエリです。私はラインフィードを1行のステートメントとして実行するスペースで置き換えようとしましたが、Javaではなくどこでも動作しました。 DROPステートメントがなくても同じ問題が試されます。
エラーコード1064(解析エラー)、国家あなたが提供することができます任意の助け42000
感謝。
DROP FUNCTION IF EXISTS escape_query_result;
delimiter @
CREATE FUNCTION escape_query_result(label CHAR(255))
RETURNS CHAR(255)
BEGIN
RETURN (REPLACE(REPLACE(REPLACE(label, "\\", "\\\\"), "|", "\\|"), "=", "\\="));
[email protected]
delimiter ;
私は私の質問を編集して、答えを投稿することができないので:
は私の答えを見つけました。
http://bugs.mysql.com/bug.php?id=25019
クエリから区切り文字を変更することはできません。区切り文字なしで実行すると呼び出しが機能しました。
更新プログラムではなくクエリとして扱っている場合、それが問題になる可能性があります。また、準備されたステートメントを見てくださいhttp://www.exampledepot.com/egs/java.sql/InsertPs.html – Max
あなたは実際に自分の質問の答えを投稿することができます。 (それはあなたがそれをやめているのですか?) –