[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 адрес ще варира, но обикновено е в следния формат:https://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 файл, създаден според очакванията.