BCP пропускает несколько строк при создании CSV-файла в Bat - PullRequest
0 голосов
/ 09 мая 2018

Предположим, t1 и t2 - две таблицы, когда я запускаю SQL-запрос в Microsoft SQL Server, он генерирует k строк,

 select * from t1 join t2 on t1.colA = t2.colA where t1.colB like 'ab%'

но тот же запрос при запуске через bcp генерирует n строк, всегда меньше k. Что не так с запросом в bcp?

 set DEST = C:\Users\userA\Desktop\exports
 set BCPARGS =-c -t, -S <servername> -d <dbname> -U user1 -P passwd1 -e %DEST %errors.txt
 bcp "select * from t1 join t2 on t1.colA = t2.colA where t1.colB like 'ab%'" queryout %DEST %csvname.csv  %BCPARGS %

1 Ответ

0 голосов
/ 15 июня 2018

Я не знал, что% используется для обозначения заменяемого параметра в оконном терминале (cmd). Таким образом, %% следует использовать в аналогичной части SQL-запроса, т.е. , например, 'ab %%' вместо , например, 'ab%'

.

Первый% указывает, что второй% является частью имени, а не заменяемым параметром, как escape-последовательность.

...