Позиционные параметры
<connection>
Параметр определяет подключение к базе данных.
Вы можете указать соединение тремя способами:
- Имя подключения
- Строка подключения
- Имя файла
Имя подключения
Лучший вариант — использовать короткие имена зашифрованных строк подключения, хранящихся в файлах конфигурации.
Например, файл gsqlcmd.exe.config
может содержать следующие строки (показаны незашифрованными):
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="master" connectionString="Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI" providerName="System.Data.OleDb" /> <add name="mssql" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Test;Password=pass;User ID=user" providerName="System.Data.SqlClient" /> <add name="mysql" connectionString="Server=localhost;Password=pass;User ID=user;Database=Test" providerName="MySql.Data.MySqlClient" /> <add name="ora" connectionString="Provider=OraOLEDB.Oracle;Password=pass;User ID=user;Data Source=localhost/Test;PLSQLRSet=True" providerName="System.Data.OleDb" /> <add name="pgsql" connectionString="Server=localhost;Password=pass;User ID=user;Database=rtd" providerName="Npgsql" /> <add name="sqlite" connectionString="Data Source=test.db;Version=3;" providerName="System.Data.SQLite" /> </connectionStrings> </configuration>
Это позволяет использовать имена, такие как master
, mssql
, mysql
и другие, в качестве параметра подключения в командной строке.
Например:
gsqlcmd exec master "select name from sys.databases"
Используйте режим edit-connections для редактирования подключений в визуальном режиме с помощью мастера gConnectionManager.
Строка подключения
Второй вариант позволяет указать строки подключения в формате <ProviderName>;<ConnectionString>
.
Например:
gsqlcmd exec "System.Data.OleDb;Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI" "select name from sys.databases"
Вот несколько примеров строк подключения:
System.Data.OleDb;Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI System.Data.Odbc;Driver=ODBC Driver 13 for SQL Server;Server=.\SQLEXPRESS;Database=master;Trusted_Connection=Yes System.Data.Odbc;DSN=master System.Data.SqlClient;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI
Поставщики System.Data.OleDb
и System.Data.Odbc
можно опустить. Например, следующие строки также допустимы:
Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI Driver=ODBC Driver 13 for SQL Server;Server=.\SQLEXPRESS;Database=master;Trusted_Connection=Yes DSN=master
Вы можете передавать строки подключения через переменные среды. Например:
set connection="Provider=MSOLEDBSQL;Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI" gsqlcmd %connection% "select name from sys.databases"
Используйте двойные кавычки для таких переменных.
Имя файла
Вы можете использовать имена файлов локальной базы данных в качестве параметра подключения.
Например:
gsqlcmd exec test.xlsx "SELECT * FROM [sheet1$]"
gsqlcmd
определяет подходящий провайдер и автоматически создает строки подключения.
Вы можете проверить фактическую строку подключения с помощью команды:
gsqlcmd show text.xlsx connectionString
<input query>
gsqlcmd
позволяет использовать запросы в двойных кавычках непосредственно в командной строке.
Например:
gsqlcmd exec db "SELECT * FROM SYS.ALL_USERS"
gsqlcmd
поддерживает предложения SELECT
, FROM
, WHERE
и ORDER BY
для веб- и файловых источников данных.
Например:
gsqlcmd select "SELECT 'AAPL' AS Symbol, RecordDate, CashAmount AS Amount FROM https://www.nasdaq.com/symbol/AAPL/dividend-history" /limit=1
gsqlcmd Enterprise
также поддерживает форму <connection>::<input query>
, которая позволяет выполнить скрипт для указанного соединения.
Например, следующая команда выбирает данные из таблицы dbo.data
соединения db2
и импортирует данные в таблицу dbo.data
соединения db
:
gsqlcmd import db "db2::SELECT * FROM dbo.data" /table=dbo.data
<input file>
Вы можете использовать абсолютные и относительные пути входных файлов.
Например:
gsqlcmd exec db application-install.sql
gsqlcmd
автоматически распаковывает файлы gzip.
Например, вы можете использовать следующую команду для выборки данных из сжатого data.xml
:
gsqlcmd select data.xml.gz
gsqlcmd Enterprise
поддерживает форму <connection>::<input file>
, которая позволяет выполнить скрипт для указанного соединения.
Например, следующая команда выбирает данные из соединения db2
и импортирует данные в таблицу dbo.data
соединения db
:
gsqlcmd import db db2::select-data.sql /table=dbo.data
<input mask>
Есть несколько способов указать набор файлов для обработки:
- Использование маски, например
install-*.sql
илиinput\*.csv
- Использование имени папки, например
input
илиinput\\
- Использование zip-файла, например
input\\options.zip
gsqlcmd
сортирует файлы в алфавитном порядке перед обработкой.
Вы можете установить желаемый порядок именования файлов. Например, используйте файлы:
install-01.sql install-02.sql
и простую команду:
gsqlcmd exec db install-*.sql
Кроме того, вы можете заархивировать файлы и использовать команду:
gsqlcmd exec db install.zip
<input command>
gsqlcmd
позволяет выполнять внутренние команды ядра базы данных.
Например:
gsqlcmd exec test.db CreateDatabase
Поддерживаемые команды SQLite:
CreateDatabase
<input collection>
Режим get-schema требует имени коллекции в качестве входного параметра.
См. подробности в описании режима get-schema.
<input url>
Параметр должен быть допустимым URL-адресом HTTP или HTTPS.
Например:
gsqlcmd download https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm
URL-адреса могут содержать параметры, определенные в файлах задач с использованием формы {parameter}
.
Например:
gsqlcmd download https://www.nasdaq.com/symbol/{symbol}/dividend-history {symbol}.htm
@<task file>
Файлы задач позволяют задавать наборы входных и выходных параметров и опций.
Например, вы можете поместить исходные файлы для выполнения, такие как install-01.sql
и install-02.sql
, в файл типа task.txt
:
install-01.sql install-02.sql
Затем выполните команду:
gsqlcmd exec db @task.txt
Используйте @
, чтобы принудительно использовать входной файл в качестве файла задачи. В противном случае gsqlcmd
будет использовать его как скрипт или источник данных.
Вы можете опустить @
в режиме download, поскольку его первый параметр принимает только URL-адреса.
Вы можете опустить имя файла задачи после символа @
, чтобы прочитать строки задачи со стандартного ввода. Например:
gsqlcmd exec db @ < task.txt
Файл задачи, используемый в качестве позиционного параметра, может содержать один, два или три параметра, разделенных пробелами, в зависимости от режима.
Например, режим преобразования принимает три параметра. Поэтому можно создать такой файл:
https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm aapl.csv https://www.nasdaq.com/symbol/MSFT/dividend-history msft.htm msft.csv
и использовать команду:
gsqlcmd convert @task.txt
В приведенных выше примерах файл задачи не имеет заголовков.
Вы можете использовать файлы задач с заголовками для указания позиционных параметров и опций.
Например:
URL FileName OutputFileName Symbol https://www.nasdaq.com/symbol/AAPL/dividend-history aapl.htm aapl.csv AAPL https://www.nasdaq.com/symbol/MSFT/dividend-history msft.htm msft.csv AAPL
Также вы можете использовать файлы задач в формате CSV:
URL;FileName;OutputFileName;Symbol https://www.nasdaq.com/symbol/AAPL/dividend-history;aapl.htm;aapl.csv;AAPL https://www.nasdaq.com/symbol/MSFT/dividend-history;msft.htm;msft.csv;AAPL
URL, FileName и OutputFileName — это специальные имена входных позиционных параметров.
Другие столбцы используются в качестве опций или значений параметров команды. Например, вы можете добавить значения для таких опций как /add, /rootPath или /pages.
Обратите внимание, что вы можете указать файлы задач в опции /taskFile.
Таким образом, вы можете указать позиционные параметры в командной строке и параметры в файле задачи.
Например, для показанного выше примера можно поместить столбец Symbol
в файл задачи и использовать следующую команду:
gsqlcmd convert https://www.nasdaq.com/symbol/{symbol}/dividend-history {symbol}.htm {symbol}.csv /taskFile=task.txt
См. подробности в описании опции /taskFile.
<output file>
Этот необязательный параметр определяет имя выходного файла.
По умолчанию gsqlcmd
выводит данные на консоль.
Расширение выходного файла определяет формат вывода по умолчанию:
*.txt - text *.csv - CSV *.htm - HTML *.html - HTML *.xml - XML *.json - JSON
Используйте опции /asText, /asCsv, /asHtml, /asXml и /asJson для явного указания формата вывода.
<output mask>
Вы можете указать маску выходного файла на основе входных URL-адресов или имен файлов для создания имен выходных файлов.
Вот несколько примеров:
Входная маска Выходная маска Входной файл Выходной файл AAPL.htm *.csv AAPL.htm AAPL.csv *.htm *.csv AAPL.htm AAPL.csv options-*.htm *.csv options-AAPL.htm options-AAPL.csv htm\*.htm csv\*.csv htm\AAPL.htm csv\AAPL.csv csv\*.csv output\* csv\AAPL.csv output\AAPL.csv csv\*.csv output\*.* csv\AAPL.csv output\AAPL.csv csv\*.csv output.csv csv\AAPL.csv output.csv
Вы можете использовать маску выходного файла с входными URL-адресами, так как gsqlcmd
извлекает имена файлов из URL-адресов.
Например:
gsqlcmd download https://www.gsqlcmd.com/download.htm *
gsqlcmd
использует определенные параметры запроса, такие как тикеры или последние сегменты URL, чтобы определить имя файла.
Например, следующая команда сохраняет выходные данные в AAPL.json
:
gsqlcmd download "https://finance.services.appex.bing.com/Market.svc/ChartAndQuotes?symbols=AAPL&chartType=1y" *.json