调用MySQL的存储过程从批处理文件中的参数 [英] Call MySQL stored procedure with parameter from batch file

查看:372
本文介绍了调用MySQL的存储过程从批处理文件中的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你知道如何从批处理文件中调用一个MySQL的存储过程?

Do you know how to call a MySQL stored procedure from batch file?

感谢您;)

我改变了主意,我决定创建批处理调用SQL文件:

I change my mind and I decided to create batch calling sql file :

我的批处理

@ECHO OFF
 cls


setlocal enableDelayedExpansion

SET MYSQL_EXE="C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe"
SET DB_USER=****
SET DB_PWD=***
SET DB=***

set DD=%DATE:~0,2%
set MM=%DATE:~3,2%
set YY=%DATE:~8,2%
set YYYY=%DATE:~6,4%
set HH=%TIME:~0,2%
set MN=%TIME:~3,2%

SET "CURRDAT=%YYYY%-%MM%-%DD% %HH%:%MN%:00"



  FOR /F  %%f in ('DIR "K:\CRN\TRAVAIL\PROGRAMMATION\Prev Conso\csvPCE_PRECO\20140522\*.*" /B') DO (

      REM call Storeprocedure From MYSQL server
      del "C:\Users\7642FH\Local\fileTest.sql"
      ECHO USE pce; > C:\Users\7642FH\Local\fileTest.sql
      ECHO LOAD DATA LOCAL INFILE '!FILEPATHSQL!' >> C:\Users\7642FH\Local\fileTest.sql
      ECHO !TBL! >> C:\Users\7642FH\Local\fileTest.sql
      ECHO FIELDS TERMINATED BY ";" >> C:\Users\7642FH\Local\fileTest.sql
      ECHO LINES TERMINATED BY '\n' >> C:\Users\7642FH\Local\fileTest.sql
      ECHO IGNORE 1 ROWS >> C:\Users\7642FH\Local\fileTest.sql
      SET "VAR=(@var1,@var2,@var3)"
      ECHO !VAR! >> C:\Users\7642FH\Local\fileTest.sql
      ECHO !SQL! >> C:\Users\7642FH\Local\fileTest.sql
      CALL %MYSQL_EXE% --user=%DB_USER% --password=%DB_PWD% --database=%DB%    < C:\Users\7642FH\Local\fileTest.sql

)

和我的SQL

USE pce;
LOAD DATA LOCAL INFILE 'C:/Users/7642FH/Local/RawFile/20141018/PREV_PCE_20141018_20141013_092802.csv' 
INTO TABLE tbl_pceraw
FIELDS TERMINATED BY ";"
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS
(@var1, @var2, @var3)
SET ElementId=@var1, TargetDateTime=!!,  CurrValue = REPLACE(@var3, ',', '.'), DataType='Actual', `TargetDate``TargetDateFolder``ComputeDateTime``ForcastValue``TargetFolder`;

我希望它可以成为有用的人!

I hope that it could be useful for someone !

推荐答案

使用MySQL命令与E选项

Use MySQL command with an e option

命令

mysql -uDBUserName -pUserPassword -DDBName -e="CALL stored_procedure_name (param1, param2, ....)"

选中此

这篇关于调用MySQL的存储过程从批处理文件中的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆