배치 파일에서 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 파일을 일괄 처리를 만들기로 결정,
감사합니다
나는 그것을 바란다. 누군가에게 유용 할 수 있습니다! 전자 옵션
당신의 연구를 공유 모두 도움이됩니다. 귀하가 시도한 내용과 귀하의 필요를 충족시키지 못한 이유를 알려주십시오. 이것은 시간을내어 자신을 도우려는 것을 보여 주며, 명백한 답을 되풀이하지 않아도되며, 무엇보다도보다 구체적이고 관련성있는 답변을 얻는 데 도움이됩니다! 또한 참조하십시오 [물어 보는 방법] (http://stackoverflow.com/questions/how-to-ask) – Cerbrus