Создайте сценарий SQL с помощью пакетного файла и добавьте несколько переменных из файла CSV в этот сценарий SQL - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в пакетном скриптинге и пытаюсь написать что-то, что может:

1) Считать первые столбцы csv и установить эти значения в качестве переменных.

2) Написатьсценарий короткого предложения SQL, добавляющий все эти переменные в предложение WHERE.

вот и все ...

Что я уже сделал:

Файл CSV (переменные для добавления) CSV файл

Код партии Код партии

Сценарий результата: Сценарий

Что мне нужно: MySQL Script Outcome из пакета

есть какие-нибудь идеи для обмена?

1 Ответ

0 голосов
/ 25 мая 2018
@echo off
setlocal

set "_InputFile=%userprofile%\Desktop\FC3.txt"

set "seq="
for /f "tokens=1 delims=," %%A in (%_InputFile%) do (
    call set "seq=%%seq%%%%~A,"
)

set "seq=(%seq:~,-1%)"

> FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq%

exit /b

%userprofile% ожидается с вашей учетной записью C:Users\Martin.

%seq% хранит числа, разделенные запятыми.

call set выполняет дополнительный анализпоэтому %%seq%% вычисляет значение имени переменной seq без необходимости отложенного расширения.

set "seq=(%seq:~,-1%)" обрезает последнюю запятую и добавляет скобки вокруг значений, разделенных запятыми.

Наконец,оператор SQL записывается в файл.

Токены, установленные в цикле for, не соответствуют образцу файла csv.Я установил токены на 1, чтобы соответствовать образцу файла CSV.Вам может потребоваться настроить токены в соответствии с вашими потребностями.


Для создания многострочного оператора.

Изменить:

> FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq%

на

(
    echo SELECT * FROM Totalfm3
    echo WHERE Totalfm3.BRN IN %seq%;
) > FinalStage.sql

Добавлен ; в конце оператора, так как MySQL заканчивает оператор.

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