Данные и файлы сценариев sql отсутствуют при использовании WbExport в командной строке - PullRequest
1 голос
/ 30 октября 2019

Я столкнулся с одной проблемой при запуске сценария sql, который содержит WbExport (с помощью оператора Select) из командной строки. Файл txt и сценарий импорта sql отсутствуют в папке назначения. В командной строке отображается, что операторы выполняются, но я думаю, что оператор select не выполняется при выполнении команды.

Без использования оператора Select я получаю операторнеобходимые выходные файлы, но имена столбцов отсутствуют в сценарии импорта SQL, поэтому я попытался выбрать метод оператора Select в WbExport.

команда:

java -jar sqlworkbench.jar -profile=New_profile -script=cmd_test.sql 

сценарий sql (cmd_test.sql):

WbExport 
    -type=text
    -file='D:\Migration\CMD_TEST\employee.txt'
    -delimiter='~'
    -quotechar='^'
    -encoding=UTF8
    -quoteCharEscaping=duplicate
    -formatFile=postgres
    -header=true
    -decimal='.'
    -dateFormat='yyyy-MM-dd'
    -replaceExpression='(\n|\r\n)' -replaceWith='';
select * from ces_prj_raymond_poc.dbo.employee; ------------I think this statement is not executing.

TXT-файл данных и SQL-скрипт импорта для таблицы

1 Ответ

0 голосов
/ 01 ноября 2019

Это сообщение было отправлено в группу поддержки SQL Workbench / J

Проблема в том, что новый драйвер Microsoft JDBC неправильно обрабатывает параметры для некоторых вызовов API JDBC и не поддерживает подстановочные знакибольшеSQL Workbench / J экранирует стандартные символы подстановки SQL перед вызовом, например DatabaseMetaData.getColumns(). Очевидно, что драйвер Microsoft JDBC, начиная с версии 7.4, больше не использует оператор LIKE, и, следовательно, вызов метода (с использованием экранированных символов подстановки) ничего не возвращает.

В SQL Workbench / J можно отключить символы подстановки, задав свойство конфигурации. Либо отредактировав workbench.settings вручную и добавив:

workbench.microsoft_sql_server.metadata.retrieval.wildcards=false

Перед редактированием файла убедитесь, что SQL Workbench / J закрыт.


Это также можно настроить без перезапуска приложения.

При подключении к базе данных SQL Server это также можно сделать из SQL Workbench / J, запустив следующий Workbenchкоманда:

WbSetDBconfig metadata.retrieval.wildcards=false;
...