MariaDB服务器版本,用于在''附近使用正确的语法在第1行

时间:2017-06-28 08:28:18

标签: mysql sql mariadb

我使用下面的命令在单独的SQL文件中执行sql命令。

mysql -uuser -ppasswrod host_name SCHMA_NAME -e "set @PACK_NAME=${ownerId};source DELTA_TRUNCATE.sql ;" 

DELTA_TRUNCATE.sql文件的竞争是:

SET @PROC_CALL=CONCAT('CALL ',@PACK_NAME||'.TRUNCATE_NORMAL_TABLE(\'IDSADLXQDWDWT\')');
PREPARE PRC_CALL_STMT FROM @PROC_CALL;EXECUTE PRC_CALL_STMT;
DEALLOCATE PREPARE PRC_CALL_STMT;

在作为unix脚本的一部分执行上述命令时,我遇到错误。

  

第1行的错误1064(42000):您的SQL语法出错;   查看与您的MariaDB服务器版本对应的手册   在''附近使用正确的语法在第1行

如果我按正常命令行执行,它执行正常。但是当作为unix脚本的一部分执行时,它会抛出错误。

1 个答案:

答案 0 :(得分:0)

您收到此错误的原因是因为从unix脚本执行时无法评估@PACK_NAME变量。因此,您需要在SET调用之前定义它,例如:

@PACK_NAME := 'blah';

或者在执行脚本时将其作为参数传递(使用执行命令),例如:

set @PACK_NAME='${someValue}'