0
  DECLARE FoundCount INT;
  DECLARE db_Name VARCHAR(255);

SET @Project_List_val = CONCAT(Project_Number_val, '_List');
SET @db_Name='test_rs';

   SET @sql1 = CONCAT('SELECT COUNT(1) INTO', @FoundCount ,'
    FROM information_schema.tables
    WHERE table_schema =',@db_Name,'
    AND table_name =', @Project_List_val);

PREPARE stmt FROM @sql1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

    IF FoundCount = 1 THEN
SET @sql = CONCAT(' INSERT INTO test (Panel_Id)
                    SELECT Panel_Id 
                    FROM ', @Project_List_val);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;

このストアド プロシージャは正常に実行されました。しかし、実行しようとすると、以下のエラーが表示されます。

1064 - SQL 構文にエラーがあります。1行目の「NULL」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

指定されたテーブル (@Project_List_val) が存在する場合、2 番目のクエリを実行する必要があります。

4

2 に答える 2

0

はい解決しました。@db_Name および @Project_List_Val のステートメント内の変数に単一引用符がありません

于 2013-02-13T04:32:25.587 に答える