2014-10-16 2 views
-2

배치 파일에서 MySQL 저장 프로 시저를 호출하는 방법을 알고 있습니까?배치 파일의 매개 변수를 사용하여 MySQL 저장 프로 시저 호출

내 배치

@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 [email protected], TargetDateTime=!!, CurrValue = REPLACE(@var3, ',', '.'), DataType='Actual', `TargetDate``TargetDateFolder``ComputeDateTime``ForcastValue``TargetFolder`; 
: 내 마음을 바꿀

) 내가 호출 SQL 파일을 일괄 처리를 만들기로 결정,

감사합니다

나는 그것을 바란다. 누군가에게 유용 할 수 있습니다! 전자 옵션

+0

당신의 연구를 공유 모두 도움이됩니다. 귀하가 시도한 내용과 귀하의 필요를 충족시키지 못한 이유를 알려주십시오. 이것은 시간을내어 자신을 도우려는 것을 보여 주며, 명백한 답을 되풀이하지 않아도되며, 무엇보다도보다 구체적이고 관련성있는 답변을 얻는 데 도움이됩니다! 또한 참조하십시오 [물어 보는 방법] (http://stackoverflow.com/questions/how-to-ask) – Cerbrus

답변

1

를 사용하여 MySQL의 명령

명령

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

Check this

+0

당신이 당신의 의도에 대한 설명을 추가하면 더 많은 방문자와 방문자에게 도움이 될 것이라고 생각합니다. – reporter

+0

다음 번에 죄송합니다 .--( – user3884958

관련 문제