Пакетная команда ДЛЯ L oop для загрузки MySQL данных - (в это время было неожиданно) - PullRequest
0 голосов
/ 07 мая 2020

У меня проблема с командой FOR L OOP с использованием командного файла ...

Посмотрим, знает ли кто-нибудь, как я могу решить эту проблему, потому что я не могу понять, как ее решить. Мой .bat файл меньше похож на пример ниже ...

ECHO 'Initializing data loading'

FOR %%I In (C:\TempFolder\*.csv) DO ( 

    ECHO '%%~nxI'

    mysql.exe -h dbInstance -uUser -pPass dbase --local-infile -e "LOAD DATA LOCAL INFILE '"%%~nxI"' INTO TABLE table1 CHARACTER SET Latin1 COLUMNS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES" 

    mysql.exe -h dbInstance -uUser -pPass dbase "OPTIMIZE TABLE table1"

)   

Мой результат:

C:\DtImport>ECHO 'Initializing data loading'
'Initializing data loading'
as was unexpected at this time.

Если я выполняю только первую mysql команду, она работает нормально .. . Просто, когда я пытаюсь выполнить более одной команды, я получаю эту ошибку.

Это результат, когда я удаляю вторую команду mysql, как это было в примере выше

C:\DtImport>test
'Initializing data loading';
'EXP_1997.csv'
mysql: [Warning] Using a password on the command line interface can be insecure.

'EXP_1998.csv'
mysql: [Warning] Using a password on the command line interface can be insecure.

Кто-нибудь может мне помочь с этим вопросом?

Все файлы .bat ниже

 @echo off

ECHO 'Movendo arquivos que serão utilizados para carga...'


ECHO 'Iniciando carga. Aguarde!'

FOR %%I In (C:\DtImport\*.csv) DO ( 

ECHO '%%~nxI'

    mysql.exe -h dinstance -uUser -pPassword dataBase --local-infile -e "LOAD DATA LOCAL INFILE '"%%~nxI"' INTO TABLE temp_table CHARACTER SET Latin1 COLUMNS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES" 

mysql.exe -h dinstance -uUser -pPassword dataBase -e "INSERT INTO imp_table (select REPLACE(CONCAT(TRIM(col1),'-',TRIM(col2),'-1'),'\"', ''), REPLACE(TRIM(col3),'\"', ''), REPLACE(TRIM(col4),'\"', ''), REPLACE(TRIM(col5),'\"', ''), REPLACE(TRIM(col6),'\"', ''), REPLACE(TRIM(col7),'\"', ''), REPLACE(TRIM(col8),'\"', ''), REPLACE(TRIM(col9),',','.'), REPLACE(TRIM(col10),',','.'), REPLACE(TRIM(col11),',','.') FROM temp_table)"

mysql.exe -h dinstance -uUser -pPassword dataBase -e "DELETE FROM temp_table"

mysql.exe -h dinstance -uUser -pPassword dataBase -e "OPTIMIZE TABLE temp_table"


) 
ECHO 'TERMINADO'

PAUSE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...