Параметры выполнения
/?
Используйте эту опцию, чтобы отобразить расширенную справку командной строки.
Например:
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 представляют имя файла без расширения и содержимое файла.
Используйте имена параметров :filename и :text вместо @filename и @text для MySQL, PostgreSQL, Oracle, DB2, NuoDB и Snowflake.
Вы можете использовать эту функцию в сочетании с опцией /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 | sqlce | mysql | oracle | db2 | nuodb | 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 в скриптах и командах SQL для Microsoft SQL Server, Microsoft SQL Server Compact и SQLite;
- :Параметр в скриптах и командах SQL для MySQL, MariaDB, PostgreSQL, Oracle Database, IBM DB2, NuoDB и 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.