Параметры выполнения
/?
Используйте эту опцию для отображения расширенной справки по командной строке.
Пример:
gsqlcmd /?
Также можно использовать режим help для получения полной справки.
/append
Эта опция позволяет добавить выходные данные в существующий выходной файл.
Пример:
gsqlcmd convert input\AAPL.CSV data.csv /append
Для обработки набора входных файлов укажите один выходной файл без параметра /append:
gsqlcmd convert input\*.CSV data.csv
/check
Используйте эту опцию для проверки кодов ответов веб-сервера в режиме download.
Создайте файл urls.txt со списком URL для проверки:
http://www.savetodb.com/ https://www.gsqlcmd.com/ https://www.gsqlcmd.com/test
Запустите команду:
gsqlcmd download @urls.txt /check
Вы получите следующий результат:
http://www.savetodb.com/ 301 https://www.gsqlcmd.com/ https://www.gsqlcmd.com/ 200 https://www.gsqlcmd.com/test 404
/formatFile=<format file>
Эта опция заменяет имена исходных столбцов именами из файла форматирования.
Вы можете создавать такие файлы, используя режим make-fmt.
/fromFiles=<mask>
Используйте эту опцию для обновления записей базы данных с содержимым файла.
Пример:
gsqlcmd exec website.com "UPDATE contents SET content = @text WHERE alias = @filename" /fromFiles=*.htm
В этом примере website.com — это именованная строка подключения к базе данных веб-сайта.
Параметры @filename и @text представляют имя файла без расширения и его содержимое соответственно.
Для MySQL, PostgreSQL, Oracle и Snowflake используйте имена параметров :filename и :text вместо @filename и @text.
Эту функцию можно комбинировать с опцией /toFiles, которая позволяет экспортировать записи в отдельные файлы:
gsqlcmd exec website.com "SELECT alias, content FROM contents" alias.htm /toFiles
Эти две опции позволяют экспортировать и импортировать содержимое CMS-систем для редактирования в автономном режиме с помощью любого текстового редактора.
/limit=<number of rows>
Эта опция ограничивает количество выходных строк.
Пример:
gsqlcmd select db dbo.cashbook /limit=10 gsqlcmd select cashbook.csv /limit=10
Используйте /limit=1 для создания одной команды для каждого файла в режимах make и import.
Пример командного файла для вставки содержимого файла в таблицу загрузок:
set template=INSERT INTO downloads (filename, contents) VALUES (@filename, @content) gsqlcmd import db *.json "/table=%template%" /set=filename=FileName();contents=FileText() /limit=1
Без опции /limit gsqlcmd импортирует все строки из проанализированного входного файла.
Целевые объекты и SQL-шаблоны могут получать значения из проанализированного файла или вычисляться с помощью функций, таких как FileName() или FileText().
Например, таблица загрузок имеет поля имени файла и содержимого, поэтому команду можно упростить:
gsqlcmd import db *.json /table=downloads /set=filename=FileName();contents=FileText() /limit=1
/[location=]local | user | app
Эта опция указывает расположение файла конфигурации gsqlcmd.exe.config.
Опция local определяет файл конфигурации в текущем каталоге (значение по умолчанию).
Именованные подключения из таких файлов доступны только в текущем каталоге.
Параметр user указывает файл конфигурации в каталоге %LocalAppData%\Gartle\gsqlcmd, доступный только текущему пользователю.
Параметр app указывает файл конфигурации в папке установки gsqlcmd, доступный для всех пользователей на данном компьютере.
/offset=<number of rows>
Эта опция пропускает указанное количество строк в выводе.
Пример:
gsqlcmd select cashbook.csv /offset=10 /limit=10
Первая строка имеет смещение 0.
/options=<file>
Используйте эту опцию для указания файла с параметрами командной строки.
Пример:
/options=options.json /options=options.txt
Можно использовать несколько файлов в формате JSON или текстовом формате.
Пример секретного файла клиента Google в формате JSON:
{"installed":{ "client_id":"123456789012-abcdefghijklmnopqrstuvwxyz123456.apps.googleusercontent.com", "project_id":"searchconsoleapi-123456", "auth_uri":"https://accounts.google.com/o/oauth2/auth", "token_uri":"https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs", "client_secret":"Abcdefghijklmnopqrstuvwx", "redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"] }}
Эквивалент в текстовом формате:
client_id=123456789012-abcdefghijklmnopqrstuvwxyz123456.apps.googleusercontent.com project_id=searchconsoleapi-123456 auth_uri=https://accounts.google.com/o/oauth2/auth token_uri=https://oauth2.googleapis.com/token auth_provider_x509_cert_url=https://www.googleapis.com/oauth2/v1/certs client_secret=Abcdefghijklmnopqrstuvwx redirect_uris=urn:ietf:wg:oauth:2.0:oob redirect_uris=http://localhost
Обратите внимание, что параметры с подчеркиванием эквивалентны параметрам без подчеркивания.
Например, client_id и clientId равнозначны.
В текстовом формате можно добавлять комментарии, начиная с символа #:
# Комментарий
/[serverType=]mssql | mysql | oracle | pgsql | snowflake | sqlite | foxpro | dbf | excel | csv
Эта опция определяет целевую платформу базы данных для генерации кода.
Используйте ее, если не указали именованное подключение в качестве позиционного параметра.
Пример:
gsqlcmd make-create data.csv create.sql /table=dbo.payments /mssql
Также используйте эту опцию для фильтрации подключений и провайдеров в режимах show-connections и show-providers.
Примеры:
gsqlcmd show-connections /oracle gsqlcmd show-providers /mysql
/set=<parameter>=<value | function>[;...]
Эта опция определяет значения параметров и значения для столбцов, отсутствующих в исходных файлах.
Пример:
gsqlcmd make db AAPL.csv AAPL.sql /table=dbo.prices /insert /set=Symbol=AAPL;LoadDate=FileDateTime(AAPL.CSV)
В этом примере используется значение AAPL для столбца Symbol и время файла AAPL.CSV для столбца LoadDate.
См. список функций, доступных с опцией /set.
Формы объявления параметров:
- @Parameter для Microsoft SQL Server и SQLite;
- :Параметр для MySQL, MariaDB, PostgreSQL, Oracle Database и Snowflake;
- {Parameter} в веб-адресах.
Не используйте параметр /set со сценариями, содержащими объявления параметров в SQL-коде, например, для создания хранимых процедур и триггеров.
gsqlcmd определяет типы параметров на основе фактических типов значений, таких как строки, числа или даты.
Используйте одинарные кавычки для строгого определения значений строкового типа, например, /set=p1='123'.
/taskFile=<file name>
Файлы задач позволяют задавать наборы входных и выходных параметров и опций.
Вы можете указать файл задачи как позиционный параметр в некоторых режимах или с помощью этой опции.
Пример пакетного файла с использованием файлов задач:
@echo off set url="https://www.nasdaq.com/symbol/{symbol}/dividend-history" gsqlcmd download %url% src\{symbol}.htm /taskfile=symbols.txt /echoOutputFileName @pause
В этом примере и URL, и имя выходного файла содержат параметр {symbol}.
Вы можете указать список значений для этого параметра в файле задачи symbols.txt:
Symbol AAPL FB MSFT
gsqlcmd выполнит указанную команду для каждой строки, заменяя параметр {symbol} соответствующим значением.
Значения из файла задачи также можно использовать в опциях /set и /add:
/set=Symbol={Symbol} /add=Symbol={Symbol}
Опция /set задает значение параметра скрипта, а опция /add добавляет выходной столбец с указанным значением.
Пример командного файла с двумя параметрами:
@echo off set url="https://www.msn.com/en-us/finance/stocks/optionsajax/{symbol}/?date={date}" gsqlcmd download %url% src\{symbol}-{date}.JSON /taskfile=symbols.txt /echoUrl @pause
Вы можете задать значения для двух параметров в отдельных столбцах:
Symbol Date AAPL 20200117 AAPL 20200619
Также можно использовать формат CSV.
В любом случае вы можете легко обновлять файлы задач из базы данных с помощью команд SELECT.
gsqlcmd Enterprise позволяет получать значения задач из базы данных, используя форму <connection>::<query>.
Пример:
@echo off set url="https://www.nasdaq.com/symbol/{symbol}/dividend-history" gsqlcmd download %url% src\{symbol}.htm "/taskfile=db::SELECT Symbol FROM dbo.symbols" /echoOutputFileName @pause
/toFiles
Эта опция экспортирует данные базы данных в отдельные файлы.
Пример:
gsqlcmd website.com "SELECT alias, content FROM contents" alias.htm /toFiles /outputCodepage=65001
В этом примере website.com — это именованная строка подключения к базе данных веб-сайта.
Команда экспортирует значения поля content в файлы, названные в соответствии со значениями поля alias (замените alias.htm на имя вашего поля).
Выходные данные SQL-запроса должны содержать ровно два поля, используемых в качестве имени файла и содержимого файла.
Таким образом, вы можете редактировать содержимое экспортированных файлов с помощью любого текстового редактора.
Затем обновите базу данных содержимым файлов с помощью следующей команды:
gsqlcmd exec website.com "UPDATE contents SET content = @text WHERE alias = @filename" /fromFiles=*.htm
См. подробности в описании опции /fromFiles.