Параметры выполнения

Параметры выполнения

/?

Используйте эту опцию, чтобы отобразить расширенную справку командной строки.

Например:

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.savetodb.com/
https://www.savetodb.com/test

И запустите команду:

gsqlcmd download @urls.txt /check

Вы получите такой результат:

http://www.savetodb.com/ 301 https://www.savetodb.com/
https://www.savetodb.com/ 200
https://www.savetodb.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&quot

Обратите внимание, что параметры с подчеркиванием эквивалентны параметрам без подчеркивания.

Например, 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.