[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) е интерактивен инструмент, който се инсталира с всяка модерна инсталация на Oracle. SQL Plus ви позволява да надхвърлите стандартните заявки за база данни с пакети, скриптове и изчисления извън нормалния обхват на Oracle.
Възможно е дори, както ще разгледаме по-долу – да генерирате текстови файлове, като .csv
, използвайки изхода от конкретна заявка за база данни.
Стартиране на SQL*Plus
В зависимост от вашата инсталация на Oracle, може да имате достъп до една от многото различни версии или „режими“, в които да стартирате приложението SQL*Plus.
SQL*Plus команден ред
Ако искате да използвате SQL*Plus Command-line
, просто ще издадете sqlplus
команда от вашата обвивка:
$ sqlplus
Това ще се опита да ви свърже с по подразбиране база данни и ще бъдете подканени да въведете вашите идентификационни данни, за да се удостоверите.
В случай, че трябва да се свържете с различна database
или използвайте различен user
(schema
), опитайте следното, като замените собствените си стойности, ако е необходимо:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Ако имате достъп до него, може да искате да използвате iSQL*Plus
, която е базирана на браузър версия на инструмента за команден ред SQL*Plus.
Това се постига чрез просто посещение на iSQL*Plus URL
за вашата база данни и инсталация. Точният URL адрес ще варира, но обикновено е в следния формат:http://machine_name.domain:port/isqlplus
SQL*Plus за Windows
Ако използвате Windows, има и версия на Windows GUI на SQL*Plus, която обикновено може да се стартира от стартовото ви меню:Start > Programs > Oracle > Application Development > SQL Plus
.
Извеждане на заявка във файл
Сега, когато сте свързани със SQL*Plus, можем да започнем да създаваме нашия файл.
Промяна на SQL*Plus конфигурация
Първата стъпка е да конфигурирате някои системни настройки на SQL*PLus с помощта на SET
изявление.
За този пример ще променим ръчно тези настройки веднъж преди нашата заявка и генериране на файлове, но ако желаете, можете да промените настройките по подразбиране на различни настройки във вашия User Profile
, намиращ се в login.sql
файл.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Първите няколко настройки, които обикновено няма да искате да променяте, но ще обясним накратко какво постига всяка.
colsep
е разделителният знак, използван за разделяне на вашите колони. За.csv
файл, това е обикновена запетая.headsep
е разделителният знак за заглавния ред (ако ви е необходим). В този пример не извеждаме заглавния ред, така че ще оставим товаoff
.pagesize
е броят на редовете „на страница“. Това е леко архаична настройка, която е предназначена за печат без твърде много редове на страница. Със стойност0
, ние не използваме страници, тъй като извеждаме във файл. Ако изберете да покажетеheader
ред, задайтеpagesize
до много голям брой (по-голям от очаквания брой резултати от записи в заявката), така че заглавният ви ред ще се показва само веднъж, а не веднъж „на страница“.trimspool
зададен наon
просто премахва крайния празен интервал.
Сега последните две настройки ще трябва да бъдат променени в зависимост от вашата заявка.
set linesize #
set numwidth #
- За
linesize
,#
стойността трябва да бъде общият брой изходни колони в получената ви заявка. numwidth
е ширината на колоната (брой символни интервали), използвана при извеждане на числови стойности.
Команда SPOOL
Забележка:SPOOL
командатане е налична в базираната на браузър версия SQL*Plus, iSQL*Plus
. За да генерирате файлове, докато използвате iSQL*Plus, променете необходимите настройки за предпочитания за директно извеждане във файл.
С нашите настройки се погрижихме, сега трябва да кажем на SQL*Plus да изведе файл. Това се постига с помощта на SPOOL
изявление.
Докато SPOOL
е активен , SQL*PLus ще съхранява изхода от всяка заявка в посочения файл.
Следователно следващата команда за въвеждане е spool
:
spool file_path
Прескачане леко напред,след вашата заявка е вмъкната, вие също трябва да спрете spool
така че изходът на файла се затваря с помощта на spool off
команда:
spool off
Вмъкнете заявката
Последната стъпка след промяна на настройките и spool
се изпълнява е да вмъкнете вашата заявка. За нашия прост пример, ние извеждаме всички книги от нашите books
таблица.
SELECT
title,
primary_author
FROM
books;
Не забравяйте точката и запетаята, за да затворите заявката си, след което въведете гореспоменатия spool off
команда.
Това е всичко, генерирали сте нов текстов файл с резултатите от вашата заявка с помощта на SQL*Plus.
Съвет:Използване на скриптов файл
Вместо да въвеждате ръчно всеки ред, се препоръчва да въведете всички настройки в нов скриптов файл, който можете да изпълните в SQL*Plus с една команда.
Създайте нов скриптов файл с EDIT
изявление:
EDIT file_name
Сега поставете целия списък с команди на скрипта във вашия нов файл и запазете. Пълното съдържание на нашия примерен скрипт може да бъде намерено по-долу.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
За да изпълните скрипта, просто използвайте @
символ, последван от името на файла:
@file_name
Вашият скрипт трябва да бъде изпълнен и .csv
файл, създаден според очакванията.