您知道如何从批处理文件中调用MySQL存储过程吗?
谢谢;)
我改变主意,决定创建批量调用sql文件:
我的批次
@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 stored procedure 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`;
我希望它对某人有用!
答案 0 :(得分:2)
使用带有e选项的MySQL命令
命令
mysql -uDBUserName -pUserPassword -DDBName -e="CALL stored_procedure_name (param1, param2, ....)"