Режимы командной строки
help
Чтобы получить краткую справку, запустите gsqlcmd без параметров.
Используйте режим help, чтобы получить расширенную справку в командной строке.
Используйте режим help с параметром online, чтобы открыть онлайн справку.
Используйте режим help с параметром chm, чтобы запустить файл справки HTML:
gsqlcmd help chm
exec
Используйте этот режим для выполнения SQL-запросов и сценариев.
Например:
gsqlcmd exec db application-install.sql
В этом примере утилита выполняет сценарий из файла application-install.sql для базы данных, указанной в именованной строке подключения db.
Вы можете использовать маску файлов, в т.ч. zip-архивов, для выполнения сценариев SQL. Например:
gsqlcmd exec db application-install-*.sql gsqlcmd exec db application-install.zip
gsqlcmd выполняет такие файлы в алфавитном порядке.
Вы можете указать список файлов для выполнения в файле задачи и использовать его в следующем виде:
gsqlcmd exec db @task.txt
Вы можете использовать SQL-запрос непосредственно в командной строке. Например:
gsqlcmd exec db "SELECT * FROM dbo.cashbook" cashbook.csv
В этом примере утилита выполняет запрос и выводит данные в файл cashbook.csv.
Используйте опции /asText, /asCsv, /asHtml, /asXml, и /asJson для преобразования вывода в нужный формат.
Например:
gsqlcmd exec db "SELECT * FROM dbo.cashbook" /asjson > cashbook.json
Вы можете использовать более простую форму для выборки данных из таблиц и представлений:
gsqlcmd exec db dbo.cashbook
gsqlcmd автоматически добавляет для таблиц и представлений "SELECT * FROM".
Используйте опции /limit и /offset для фильтрации выходных строк. Например:
gsqlcmd exec db dbo.cashbook /limit=10
Вы можете использовать ключевое слово exec или execute.
Кроме того, вы можете опустить ключевое слово, так как exec является режимом по умолчанию. Например:
gsqlcmd db "SELECT * FROM dbo.cashbook"
Однако использование режима с ключевым словом немного быстрее.
Используйте режим edit-connections для создания именованных строк подключения.
Также вы можете указать полную строку подключения вместо именованного подключения.
Ниже приведены несколько примеров таких полных строк подключения .NET, OLE DB и ODBC.
gsqlcmd exec "System.Data.SqlClient;Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=SSPI" application-install.sql gsqlcmd exec "Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=SSPI" application-install.sql gsqlcmd exec "Driver=ODBC Driver 13 for SQL Server;Server=.\SQLEXPRESS;Database=Test;Trusted_Connection=Yes" application-install.sql
gsqlcmd обнаруживает строки OLE DB с использованием префикса "Provider=" и строки ODBC с использованием префикса "Driver=".
Вы можете использовать имена файлов вместо именованных строк при запросах к файлам и файловым базам данных.
Ниже приведены несколько примеров для SQLite, SQL Server Compact, DBF, Excel, CSV и текста:
gsqlcmd exec test.db "SELECT * FROM cashbook" gsqlcmd exec test.sdf "SELECT * FROM cashbook" gsqlcmd exec test.dbf "SELECT * FROM test.dbf" gsqlcmd exec test.xlsx "SELECT * FROM [sheet1$]" gsqlcmd exec test.csv "SELECT * FROM test.csv" gsqlcmd exec test.txt "SELECT * FROM test.txt"
Во всех этих случаях gsqlcmd автоматически создает подходящее соединение .NET, OLE DB или ODBC.
Вы можете проверить фактическую строку подключения, используя режим show-connection. Например:
gsqlcmd show-connection test.xslx ConnectionString
Используйте опции /commandTimeout и /connectionTimeout для установки времени ожидания.
Используйте опцию /noTransaction для выполнения сценариев в режиме без транзакций.
Используйте опцию /trace для вывода выполняемых команд.
select
Используйте режим select как синоним режима exec или convert.
Например, режим select с именованной строкой подключения является синонимом режима exec:
gsqlcmd select db dbo.cashbook
Обратите внимание, что gsqlcmd преобразует эту команду в режим exec в следующем виде:
gsqlcmd exec db "SELECT * FROM dbo.cashbook"
Режим выбора без именованного соединения эквивалентен режиму convert.
Ниже приведены несколько примеров:
gsqlcmd select https://www.nasdaq.com/symbol/AAPL/dividend-history gsqlcmd select aapl.json gsqlcmd select "SELECT loc FROM https://www.savetodb.com/sitemap.xml" /noHeaders
gsqlcmd включает этот синоним, поскольку ключевое слово select описывает операции выборки намного лучше, чем ключевые слова exec или convert.
download
Используйте этот режим для загрузки файлов или выполнения веб-запросов.
Например:
gsqlcmd download https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm
Вы можете использовать маску для выходных файлов, если URL-адрес содержит имя файла. Например:
gsqlcmd download https://www.savetodb.com/sitemap.xml *.*
Вы можете использовать простые или типизированные файл задач для загрузки списка URL-адресов.
Например, вы можете поместить URL-адреса для загрузки в файл типа sitemap.txt и использовать команду:
gsqlcmd download @sitemap.txt *.*
Ниже приведен простой пакетный файл, который позволяет загружать файл sitemap.xml и его страницы веб-сайта:
@echo off gsqlcmd download https://www.savetodb.com/sitemap.xml *.* gsqlcmd convert "SELECT loc FROM sitemap.xml" sitemap.txt /noHeaders gsqlcmd download @sitemap.txt *.*
Вы даже можете упростить набор команд, используя конвейерную обработку:
gsqlcmd convert "SELECT loc FROM https://www.savetodb.com/sitemap.xml" /noHeaders | gsqlcmd download @ *.*
Вы можете использовать опцию /check для проверки только кодов состояний.
Например, чтобы получить коды статуса ответа для всех страниц в sitemap.xml, вы можете использовать команду:
gsqlcmd convert "SELECT loc FROM https://www.savetodb.com/sitemap.xml" /noHeaders | gsqlcmd download @ /check
gsqlcmd определяет URL-адреса следующей страницы и позволяет загружать несколько страниц для указанных начальных URL-адресов.
Например, чтобы загрузить все страницы опционов из Yahoo Finance, можно использовать следующий пакетный файл:
@echo off set url="https://query1.finance.yahoo.com/v7/finance/options/{symbol}" gsqlcmd download %url% src\*.JSON /taskfile=symbols.txt /echoOutputFileName /pages=20
В этом примере symbols.txt содержит биржевые символы, такие как
Symbol AAPL FB GOOGL
Режим download поддерживает ряд параметров веб-запроса.
Например, вы можете указать имя пользователя и пароль для защищенных ресурсов.
Также используйте /echoOutputFileName и параметры /echoUrl для отслеживания хода загрузки.
convert
Используйте этот режим для загрузки и преобразования веб-данных или локальных файлов.
gsqlcmd поддерживает следующие форматы ввода и вывода: XML, JSON, HTML, CSV и обычный текст.
Например:
gsqlcmd convert https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.csv
В этом примере утилита загружает HTML-страницу, извлекает данные и сохраняет их в файл aapl.csv.
Для сохранения также непосредственно загруженного файла используйте форму с тремя позиционными параметрами:
gsqlcmd convert https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm aapl.csv
gsqlcmd поддерживает множество опций парсера для настройки синтаксического анализатора входных данных и множество параметров форматирования для настройки вывода.
Вы можете найти множество таких примеров в папке Downloading and converting to CSV пакета загрузки gsqlcmd.
Например, ниже приведен пакетный файл, который конвертирует загруженные цепочки опционов из Yahoo Finance:
@echo off gsqlcmd convert src\*.JSON csv\*.CSV ^ /rootPath=*.*.*.calls,*.*.*.puts ^ /add=Symbol=FileNameWithoutPage();LoadDate=FileDateTime() ^ /quoteChar= /DateFormat=yyyy-MM-dd /echoInputFileName
Ниже еще один пример, который загружает и конвертирует исторические цены акций из MSN Money:
@echo off set url="https://finance.services.appex.bing.com/Market.svc/ChartAndQuotes?symbols={symbol}&chartType=1y&isEOD=True&isCS=true&isVol=true" gsqlcmd convert %url% src\{symbol}.JSON csv\*.CSV /taskfile=symbols.txt ^ /rootPath=Chart.Series ^ /skippedNodes=IsStitched ^ /add=Symbol={Symbol} ^ /quoteChar= /DateTimeFormat=yyyy-MM-dd /echoOutputFileName
Файл symbols.txt содержит биржевые символы, такие как
Symbol AAPL FB GOOGL
Вы можете использовать файлы задач для указания параметров и опций командной строки.
import
Используйте этот режим для импорта данных в одной команде, вместо использования отдельных команд make и execute.
Например, следующая команда вставляет данные из data.csv в таблицу dbo.data:
gsqlcmd import db data.csv /table=dbo.data
Вы можете определить требуемые команды, используя опции /insert, /update, /delete и /merge. Например:
gsqlcmd import db data.csv /table=dbo.data /insert gsqlcmd import db data.csv /table=dbo.data /update gsqlcmd import db data.csv /table=dbo.data /delete gsqlcmd import db data.csv /table=dbo.data /merge
Чтобы выполнить хранимую процедуру для каждой строки, используйте имя хранимой процедуры в опции /table:
gsqlcmd import db data.csv /table=dbo.usp_insert_data
Чтобы выполнить пользовательскую команду для каждой строки, используйте запрос в командной строке или имя файла:
gsqlcmd import db data.csv /table=insert-template.sql
Обратите внимание, что вы можете использовать любой локальный или веб-источник данных в любом поддерживаемом формате: обычный текст, CSV, XML, JSON или HTML.
Например:
gsqlcmd import db https://www.nasdaq.com/symbol/AAPL/dividend-history /table=dbo.dividends /set=symbol=AAPL
Используйте опцию /add, чтобы добавить фиксированные значения для целевых столбцов, отсутствующих в источнике данных.
Используйте опцию /insertIdentity для вставки значений в столбцы идентификаторов.
Используйте опцию /formatFile, чтобы заменить имена исходных столбцов именами из файла форматирования.
Используйте опцию /keys, чтобы определить столбцы для предложения WHERE, если столбцы первичного ключа отсутствуют в источнике данных.
Например:
gsqlcmd import db data.csv /table=dbo.data /insert gsqlcmd import db data.csv /table=dbo.data /update /keys=FirstName,LastName gsqlcmd import db data.csv /table=dbo.data /delete /keys=FirstName,LastName gsqlcmd import db data.csv /table=dbo.data /merge /keys=FirstName,LastName
gsqlcmd Enterprise поддерживает импорт данных из другой базы данных одной командой с использованием источника данных в формате <connection>::<[query](command-line-parameters.htm#parameter-input- запрос)>.
Например:
gsqlcmd import db db2::select-data.sql /table=dbo.data
Таким образом, вы можете импортировать данные между любыми поддерживаемыми базами данных, например, из MySQL в SQL Server и обратно.
Более того, вы можете получать начальные параметры для запросов select с помощью опции /taskfile. Например:
gsqlcmd import db db2::select-data.sql /table=dbo.data /taskfile=db::get-parameters.sql
В этом примере gsqlcmd делает следующее:
- выполняет запрос get-parameters.sql для базы данных с именованным подключением db,
- подготавливает select-data.sql на основе полученных значений,
- выполняет select-data.sql в базе данных с именованным подключением db2,
- генерирует и выполняет команды INSERT в таблицу dbo.data для подключения db.
Обратите внимание, что gsqlcmd выполняет команду для каждой строки в результатах файла задач. Обычно, файлы задач, как get-parameters.sql, возвращают одну строку со столбцами для каждого выбранного параметра запроса.
Вы можете получить аналогичные результаты в редакции gsqlcmd Standard. Однако для этого требуются применение отдельных файлов пакетов, задач и данных.
make
Используйте этот режим для генерации команд INSERT, UPDATE, DELETE, MERGE, EXECUTE или пользовательских для каждой строки источника данных.
Например, следующая команда создает команды INSERT, UPDATE, DELETE и MERGE на основе data.csv для обновления таблицы dbo.data:
gsqlcmd make db data.csv data-insert.sql /table=dbo.data /insert gsqlcmd make db data.csv data-update.sql /table=dbo.data /update gsqlcmd make db data.csv data-delete.sql /table=dbo.data /delete gsqlcmd make db data.csv data-merge.sql /table=dbo.data /merge
Для генерации команд EXECUTE используйте имя хранимой процедуры вместо таблицы:
gsqlcmd make db data.csv data-execute.sql /table=dbo.usp_insert_data
Чтобы сгенерировать пользовательские команды для каждой строки, используйте запрос в командной строке или имя файла:
gsqlcmd make-insert db data.csv data-custom.sql /table=insert-template.sql
Обратите внимание, что вы можете использовать любой локальный или веб-источник данных в любом поддерживаемом формате: текст, CSV, XML, JSON или HTML.
Используйте опцию /add, чтобы добавить фиксированные значения для целевых столбцов, отсутствующих в источнике данных.
Используйте опцию /insertIdentity для вставки значений в столбцы идентификаторов.
Используйте опцию /insertNulls, чтобы сохранять значения NULL в командах INSERT.
Используйте опцию /formatFile, чтобы заменить имена исходных столбцов именами из файла форматирования.
Используйте опцию /keys, чтобы определить столбцы для предложения WHERE, если столбцы первичного ключа отсутствуют в источнике данных.
gsqlcmd Enterprise поддерживает получение данных из другой базы данных одной командой с использованием формата <connection>::<query>.
Например:
gsqlcmd make db db2::select-data.sql data-insert.sql /table=dbo.data
Также, вы можете получать начальные параметры с помощью опции /taskfile. Например:
gsqlcmd make db db2::select-data.sql data-insert.sql /table=dbo.data /taskfile=db::get-parameters.sql
В этом примере gsqlcmd делает следующее:
- выполняет get-parameters.sql для соединения db,
- готовит запрос select-data.sql на основе полученных значений,
- выполняет select-data.sql для соединения db2,
- генерирует команды INSERT для соединения db.
Вы можете получить аналогичные результаты в редакции gsqlcmd Standard. Однако для этого требуется использование отдельных файлов пакетов, задач и данных.
make-fmt+
Используйте этот режим для создания набора файлов, создаваемых в следующих режимах: make-fmt, make-create, make-ace, make-bulk и make-ini.
Например:
gsqlcmd make-fmt+ data.csv
Если файл формата существует, gsqlcmd использует его в качестве источника имен столбцов. В противном случае создается новый файл формата.
Обычно gsqlcmd запускается в этом режиме дважды: первый раз, чтобы сгенерировать все файлы как есть, и второй раз, после редактирования файла формата.
make-fmt
Используйте этот режим для создания файлов форматов на основе фактических данных в файле CSV.
Например:
gsqlcmd make-fmt data.csv data.fmt
Например, data.csv содержит следующие данные:
FirstName;LastName John;Doe Jane;Doe
Для этих данных gsqlcmd создаст следующий файл data.fmt:
9.0 2 1 SQLCHAR 0 255 ";" 1 "FirstName" "" 2 SQLCHAR 0 255 "\r\n" 2 "LastName" ""
gsqlcmd генерирует non-XML файлы формата SQL Server.
Вы можете использовать такие файлы с функцией SQL Server OPENROWSET для импорта данных CSV в базы данных SQL Server.
Используйте режим make-bulk для создания готовых к использованию команд SELECT.
Вы можете изменить имена столбцов в файле выходного формата и использовать опцию /formatFile в нескольких режимах работы gsqlcmd.
Это самый простой способ замены имен исходных столбцов на имена столбцов целевой таблицы.
make-create
Используйте этот режим для создания оператора CREATE TABLE на основе фактических данных в файле CSV.
Например:
gsqlcmd make-create data.csv create-table.sql /table=dbo.data /mssql
Для примера данных, использованного выше, gsqlcmd генерирует следующий код:
CREATE TABLE [dbo].[data] ( [ID] int IDENTITY(1,1) NOT NULL, [FirstName] nvarchar(255) NULL, [LastName] nvarchar(255) NULL, CONSTRAINT [PK_data_dbo] PRIMARY KEY ([ID]) ); GO print N'Table [dbo].[data] created'; GO
Используйте опцию /table, чтобы указать целевую таблицу.
Используйте следующие опции, чтобы указать платформу целевой базы данных: /mssql, /sqlce, /mysql, /oracle, /db2, /nuodb, /pgsql, /snowflake, /sqlite.
Используйте опцию /formatFile, чтобы заменить имена исходных столбцов именами из файла форматирования.
Используйте опцию /keys, чтобы указать поля первичного ключа. Например:
gsqlcmd make-create data.csv create-table.sql /table=dbo.data /mssql /keys=FirstName,LastName
Эта команда генерирует следующий код:
CREATE TABLE [dbo].[data] ( [FirstName] nvarchar(255) NOT NULL, [LastName] nvarchar(255) NOT NULL, CONSTRAINT [PK_data_dbo] PRIMARY KEY ( [FirstName], [LastName] ) ); GO print N'Table [dbo].[data] created'; GO
gsqlcmd генерирует текстовые столбцы с длиной по умолчанию 255. Отредактируйте длину полей перед выполнением команды.
make-ace
Используйте этот режим для генерации команды INSERT с функцией SQL Server OPENROWSET для импорта данных CSV в базы данных SQL Server с помощью поставщика Microsoft.ACE.OLEDB.16.0.
Например:
gsqlcmd make-ace data.csv insert-ace.sql /table=dbo.data
Команда выдает следующий результат для тестовых данных, использованных выше:
INSERT INTO dbo.data ( [FirstName] , [LastName] ) SELECT t.[FirstName] , t.[LastName] FROM ( SELECT [FirstName] AS [FirstName] , [LastName] AS [LastName] FROM OPENROWSET('Microsoft.ACE.OLEDB.16.0', 'Text;Database=D:\Help\gsqlcmd;HDR=YES;Format=Delimited(;)', 'SELECT * FROM [data.csv]') t ) t
Вы можете вручную изменить фактический путь к данным.
Используйте опцию /table, чтобы указать целевую таблицу.
Используйте опцию /formatFile, чтобы заменить имена исходных столбцов именами из файла форматирования.
Используйте следующую ссылку для загрузки поставщика ACE.OLEDB:
Можно установить провайдер той же разрядности, что и установленный Microsoft Office.
Если у вас установлен 32-разрядный Microsoft Office в 64-разрядной версии Windows, используйте gsqlcmd32.exe для выполнения сгенерированных команд.
make-bulk
Используйте этот режим для генерации команды INSERT с функцией SQL Server OPENROWSET для импорта данных CSV в базы данных SQL Server.
Например:
gsqlcmd make-bulk data.csv insert-bulk.sql /table=dbo.data /formatFile=data.fmt /inputcodepage=65001
Команда выдает следующий результат для тестовых данных, использованных выше:
INSERT INTO dbo.data ( [FirstName] , [LastName] ) SELECT t.[FirstName] , t.[LastName] FROM ( SELECT [FirstName] AS [FirstName] , [LastName] AS [LastName] FROM OPENROWSET( BULK 'D:\Help\gsqlcmd\data.csv', FORMATFILE = 'D:\Help\gsqlcmd\data.fmt', CODEPAGE = '65001', FIRSTROW = 2) t ) t
Используйте опцию /table, чтобы указать целевую таблицу.
Используйте опцию /formatFile, чтобы заменить имена исходных столбцов именами из файла форматирования.
Используйте опцию /inputCodepage, чтобы указать кодовую страницу.
Вы можете использовать опцию /relative для удаления абсолютных путей. gsqlcmd автоматически определяет текущие пути в режиме exec.
make-ini
Используйте этот режим для создания и обновления определений файла schema.ini, который поддерживает импорт данных CSV в Microsoft Excel и базы данных с использованием поставщиков OLE DB и драйверов ODBC.
Например:
gsqlcmd make-ini data.csv schema.ini
Используйте опцию /formatFile, чтобы указать файл формата с фактическими именами столбцов.
Например:
gsqlcmd make-ini data.csv schema.ini /formatFile=data.fmt
Для поставщиков OLE DB и драйверов ODBC требуется файл schema.ini, если выполняемая команда содержит имена столбцов.
Например, первая команда не требует schema.ini, а вторая требует:
gsqlcmd select data.csv "SELECT * FROM data.csv" gsqlcmd select data.csv "SELECT FirstName, LastName FROM data.csv"
gsqlcmd анализирует выполняемые запросы и автоматически обновляет файл schema.ini.
make-select
Используйте этот режим для создания инструкции SQL SELECT на основе фактических данных в файле CSV.
Например:
gsqlcmd make-select data.csv select.sql /table=dbo.data /mssql
Для примера данных, использованного выше, gsqlcmd генерирует следующий код:
SELECT t.FirstName , t.LastName FROM dbo.data t
Вы можете сгенерировать команду SELECT и для CSV-файла (опустите параметр /table):
gsqlcmd make-select data.csv select.sql
select.sql содержит следующий код:
SELECT t.FirstName , t.LastName FROM [data.csv] t
Вы можете отредактировать файл и использовать режим select для выборки необходимых данных из файла:
gsqlcmd select select.sql
get-token
Используйте этот режим для получения токенов OAuth2 в интерактивном режиме.
Например:
gsqlcmd get-token /clientJson=client_secret.json /tokenJson=access_token.json ^ /grantType=authorization_code ^ /scope=https://www.googleapis.com/auth/webmasters.readonly
В этом примере файл client_secret.json содержит необходимые параметры, за исключением типа авторизации и запрашиваемых прав в параметре scope.
Обычно вы можете экспортировать такие файлы со страниц зарегистрированных приложений.
Например, секретный файл клиента Google Search Console выглядит так:
{"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"] }}
Вместо использования файла с параметрами вы можете напрямую указать параметры OAuth.
Файл access_token.json, указанный в опции /tokenJson, является выходным файлом для полученного токена.
Например, файл токена Google Search Console выглядит так:
{ "access_token": "ya29.abcdefghijklmnopqrstuv-1234567890123456789-abcdefghijklmnopqrstu_123456789012345678-abc-abcdefghijklmnopqrstuvwx-1234567890123", "expires_in": 3600, "refresh_token": "1/ABCDEFGHIJKLMNOPQRST-abcdefghijklmnopqrstuv", "scope": "https://www.googleapis.com/auth/webmasters.readonly", "token_type": "Bearer" }
Вы можете использовать полученный файл в опции /tokenJson в других операциях в качестве входного файла.
Значением по умолчанию параметра /grantType является authorization_code.
Значения параметра /scope специфичны для каждого API. См. документацию по используемому API.
refresh-token
Используйте этот режим для явного обновления токена OAuth2.
Например:
gsqlcmd refresh-token /clientJson=client_secret.json /tokenJson=access_token.json
См. комментарии к опциям /clientJson и /tokenJson в режиме get-token, описанном выше.
Обратите внимание, что gsqlcmd пытается автоматически обновить токен доступа в других режимах, если вы укажете необходимые параметры для этой операции.
revoke-token
Используйте этот режим для отзыва токена OAuth2.
Например:
gsqlcmd revoke-token /clientJson=client_secret.json /tokenJson=access_token.json
См. комментарии к опциям /clientJson и /tokenJson в режиме get-token, описанном выше.
get-authcode
Используйте этот режим, чтобы получить код авторизации OAuth1 или OAuth2 для использования в сторонних приложениях.
gsqlcmd получает такие коды на первом этапе режима get-token, если это необходимо.
Например:
gsqlcmd get-authcode /clientJson=client_secret.json /tokenJson=access_token.json
См. комментарии к опциям /clientJson и /tokenJson в режиме get-token, описанном выше.
get-schema
Используйте этот режим для запроса GetSchema указанного соединения и коллекции.
Например:
gsqlcmd get-schema db tables
Вы можете использовать запрос SELECT в командной строке, например:
gsqlcmd get-schema test.xlsx "SELECT TABLE_NAME FROM tables"
Оба примера выбирают данные из коллекции таблиц.
Каждый поставщик .NET, OLE DB или ODBC поддерживает определенный набор коллекций.
Ниже приведен список общих коллекций:
- Tables
- Views
- Procedures
- DataTypes
- Columns
- Indexes
- DataSourceInformation
- ReservedWords
- Restrictions
Ниже приведен список хорошо документированных коллекций:
- ODBC Schema Collections
- OLE DB Schema Collections
- SQL Server Schema Collections
- Oracle Schema Collections
- MySQL Schema Collections
Коллекции могут поддерживать или требовать использование ограничений.
Например, вы можете ограничить выбранные столбцы именем таблицы.
Добавьте необходимые ограничения в нужных позициях, используя запятую в качестве разделителя.
Например:
gsqlcmd get-schema test.xlsx columns,,,Sheet1$
Ниже приведен полный пример с предложением SELECT и именованным диапазоном имени рабочего листа с пробелами:
gsqlcmd get-schema test.xlsx "SELECT COLUMN_NAME FROM columns,,,'sales data$'Data"
create-database
Используйте этот режим для создания баз данных SQLite и SQL Server Compact.
Например:
gsqlcmd create-database test.db
gsqlcmd определяет типы баз данных по расширениям: SQLite для *.db и SQL Server Compact для *.sdf.
Вы можете указать именованное соединение вместо имени файла.
Например:
gsqlcmd create-database db
Также есть альтернативный способ создания баз данных с помощью именованного соединения и команды CreateDatabase.
Например:
gsqlcmd exec db CreateDatabase
gsqlcmd включает поставщиков .NET для SQLite и SQL Server Compact 4.0.
Вы можете скачать полные пакеты для установки баз данных по следующим ссылкам:
edit-connections
Используйте этот режим для запуска мастера gConnectionManager для редактирования именованных соединений в файле конфигурации gsqlcmd.exe.config.
Используйте опцию /local для редактирования файла конфигурации в текущем каталоге. Это значение по умолчанию.
Именованные соединения из таких файлов доступны только в текущем каталоге.
Используйте опцию /user для редактирования файла конфигурации в каталоге %LocalAppData%\Gartle\gsqlcmd.
Именованные подключения из этого файла доступны только текущему пользователю.
Используйте опцию /app, чтобы отредактировать файл конфигурации в папке установки gsqlcmd.
Именованные соединения из этого файла обычно доступны для любого пользователя на данном компьютере.
Кроме того, вы можете использовать ключевое слово edit в качестве синонима. Например:
gsqlcmd edit /user
show-connections
Используйте этот режим для отображения настроенных именованных соединений.
Например:
gsqlcmd show-connections
Вы можете использовать опции /local, /пользователь, и /app для отображения соединений заданного файла конфигурации.
Например:
gsqlcmd show-connections /app
Также вы можете использовать следующие параметры для фильтрации подключений для указанной платформы:
/mssql, /sqlce, /mysql, /oracle, /db2, /nuodb, /pgsql, /snowflake, /sqlite, /dbf, /foxpro, /csv, /excel
Например:
gsqlcmd show-connections /oracle
show-connection
Используйте этот режим для отображения свойств именованного подключения.
Например:
gsqlcmd show-connection db
В качестве соединения также можно использовать имя файла базы данных или имя текстового файла.
Используйте следующие значения в качестве дополнительного параметра, чтобы получить значение указанного свойства строки подключения:
- provider
- defaultConnectionString
- connectionString
- serverType
- server
- database
- filename
- authentication
- username
- password
Например:
gsqlcmd show data.csv defaultConnectionString
Команда показывает следующее:
Provider=Microsoft.ACE.OLEDB.16.0;Extended Properties="Text;HDR=Yes;FMT=Delimited"
В примере также используется synonym режима show-connection.
show-providers
Используйте этот режим для отображения списка доступных поставщиков.
Например:
gsqlcmd show-providers
Вы можете использовать следующие параметры для фильтрации провайдеров для указанной платформы:
/mssql, /sqlce, /mysql, /oracle, /db2, /nuodb, /pgsql, /snowflake, /sqlite, /dbf, /foxpro, /csv, /excel
Например:
gsqlcmd show-providers /excel
Эта команда может выводить следующее:
Provider=Microsoft.ACE.OLEDB.16.0;Extended Properties=Excel 12.0 Driver=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) DSN=Excel Files
Используйте gsqlcmd32.exe для получения списка 32-разрядных поставщиков в 64-разрядной версии Windows. Например:
gsqlcmd32 show-providers /excel
Команда выводит следующие строки:
Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 12.0 Driver=Microsoft Excel Driver (*.xls) DSN=Excel Files
show-roots
Используйте этот режим, чтобы найти значения для опции /rootPath анализатора JSON и XML.
Например, вы можете использовать следующую команду, чтобы получить возможные корни результирующего JSON для исторических цен от Yahoo Finance:
gsqlcmd show-roots AAPL.JSON
Команда выдает следующий набор строк:
chart chart.result chart.result.meta chart.result.meta.currency chart.result.meta.symbol chart.result.meta.exchangeName ... chart.result.timestamp <-- chart.result.indicators chart.result.indicators.quote <-- chart.result.indicators.quote.close chart.result.indicators.quote.high chart.result.indicators.quote.open chart.result.indicators.quote.low chart.result.indicators.quote.volume chart.result.indicators.adjclose chart.result.indicators.adjclose.adjclose <-- chart.error
Чтобы извлечь исторические цены, вы можете использовать следующую команду, заменив общие пути звездочкой:
gsqlcmd convert AAPL.JSON AAPL.CSV /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.*.adjclose
В большинстве случаев gsqlcmd автоматически определяет необходимые столбцы.
Таким образом, следующая команда выдаст те же результаты, что и предыдущая:
gsqlcmd convert AAPL.JSON AAPL.CSV
Однако указание корневых путей с другими опциями, как например /collapsedNodes, /keptNodes, /requiredColumns, или /skippedNodes позволяет получить требуемый результат практически для любого случая.
gsqlcmd выводит столбцы в исходном порядке.
Вы можете изменить порядок, добавить, удалить или переименовать столбцы с помощью команды SELECT следующим образом:
gsqlcmd convert "SELECT 'AAPL' AS symbol, timestamp AS time, open, high, low, close, volume, adjclose FROM AAPL.JSON" AAPL.CSV
show-html-tables
Используйте этот режим, чтобы найти номера таблиц для опции /rootPath синтаксического анализатора HTML.
Например, вы можете загрузить данные о дивидендах с помощью следующей команды:
gsqlcmd download https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm
Файл aapl.htm содержит полное содержимое веб-страницы.
Вы можете использовать следующую команду, чтобы очистить его и перечислить таблицы данных:
gsqlcmd show-html-tables aapl.htm aapl-tables.htm /openOutput
Вы увидите, что история дивидендов находится в таблице 3. Т.е. можно использовать следующую команду для извлечения данных:
gsqlcmd convert aapl.htm aapl.csv /rootPath=3
В большинстве случаев gsqlcmd автоматически определяет требуемые таблицы данных. Используйте параметр /rootPath для извлечения данных из конкретной таблицы.
clean-html
Используйте этот режим для удаления сценариев, объявлений классов CSS, атрибутов, комментариев или узлов из файлов HTML.
Например:
gsqlcmd clean-html aapl.htm aapl-clean.htm /cutComments
Вы можете настроить правила очистки, используя файл конфигурации и следующие опции вывода:
autoCorrectedTags, cutAttributes, cutComments, cutIDs, cutTags
Обратите внимание, что вы также можете очищать файлы в режимах download и convert с помощью опции /cleanHtml, который имеет те же настройки.
del-if-html
Используйте этот режим, чтобы удалить файлы HTML, полученные вместо ожидаемых данных XML или JSON, чтобы пропустить их дальнейшую обработку.
Например:
gsqlcmd del-if-html input\*.htm
del-if-empty
Используйте этот режим для удаления пустых файлов.
Например:
gsqlcmd del-if-empty output\*.csv
Эта опция позволяет удалять файлы, в которых нет ожидаемых данных, например, для их повторной загрузки.
sleep
Используйте этот режим для ожидания определенного количества миллисекунд между запросами, чтобы избежать блокировки IP-адреса веб-сервером.
Например, чтобы делать два запроса в секунду в пакетном цикле, используйте задержку в 300-400 миллисекунд:
gsqlcmd sleep 300 gsqlcmd download ...
Если вы загружаете данные с нескольких URL-адресов с помощью файлов задач, используйте вместо этого опцию /delay.
В этом случае можно указать точную задержку между запросами:
gsqlcmd download @task.txt /delay=500
Вы можете использовать спящий режим для автоматизации загрузки данных или выполнения сценариев с заданным интервалом или в определенное время.
Например, чтобы повторять действие каждые 60 минут, используйте 3600000 миллисекунд (60*60*1000):
gsqlcmd sleep 3600000 start <any command>
Чтобы начать действие в указанное время, используйте формат чч:мм[:сс]. Например:
gsqlcmd sleep 09:30 <any command>
Обратите внимание, что ваш компьютер не должен переходить в спящий режим, чтобы начать действие.
Вы можете использовать опции /hideWindow или /minimizeWindow, чтобы скрыть или свернуть окно консоли.
Например, вы можете свернуть окно и остановить выполнение на минуту, используя следующую команду:
gsqlcmd sleep 60000 /minimizeWindow
stamp
Используйте этот режим для установки текущего времени в переменные среды.
Например:
for /F %%i in ('gsqlcmd.exe stamp') do set stamp=%%i
Формат по умолчанию - yyyyMMdd-HHmmss. Например, переменная штампа имеет значение вроде 20190321-124925.
Вы можете настроить формат вывода, используя строку формата в качестве второго параметра.
Например:
for /F "delims==" %%i in ('gsqlcmd.exe stamp "yyyy-MM-dd HH:mm:ss"') do set stamp=%%i
version
Используйте этот режим, чтобы показать и протестировать версию gsqlcmd.
Чтобы показать версию, используйте:
gsqlcmd version
Чтобы проверить версию, укажите минимальную требуемую версию и используйте в качестве результата %errorlevel%.
Например:
@echo off gsqlcmd version 5.1 if errorlevel 3 ( echo Update gsqlcmd to version 5.1 goto :EOF )
gsqlcmd возвращает уровень ошибки 3, если требуемая версия больше текущей, и уровень ошибки 0, если требуемая версия меньше или равна.
hide-window
Используйте этот режим, чтобы скрыть окно консоли.
Например:
gsqlcmd hide-window
Используйте режим show-window для отображения окна.
Обратите внимание, что вы можете скрыть окно для любой команды, используя опцию /hideWindow.
В этом случае gsqlcmd показывает окно после завершения команды.
show-window
Используйте этот режим, чтобы показать окно консоли, скрытое в режиме hide-window.
Например:
gsqlcmd show-window
minimize-window
Используйте этот режим, чтобы свернуть окно консоли.
Например:
gsqlcmd minimize-window
Используйте режим restore-window для восстановления окна.
Обратите внимание, что вы можете свернуть окно для любой команды, используя опцию /minimizeWindow.
В этом случае gsqlcmd восстанавливает окно после завершения команды.
restore-window
Используйте этот режим для восстановления свернутого окна консоли.
Например:
gsqlcmd restore-window
auto-update
Используйте этот режим, чтобы запустить мастер проверки и установки обновлений.
Например:
gsqlcmd auto-update
register
Используйте этот режим для запуска мастера регистрации.
Например:
gsqlcmd register
Оглавление
- help
- exec
- select
- download
- convert
- import
- make
- get-token
- refresh-token
- revoke-token
- get-authcode
- get-schema
- create-database
- edit-connections
- show-connections
- show-connection
- show-providers
- show-roots
- show-html-tables
- clean-html
- del-if-html
- del-if-empty
- sleep
- stamp
- version
- hide-window
- show-window
- minimize-window
- restore-window
- auto-update
- register