Рассылка закрыта
При закрытии подписчики были переданы в рассылку "СУБД Oracle "с нуля"" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Открыто о СУБД Oracle на русском : SQL*Plus - завершаем тему...
Информационный Канал Subscribe.Ru |
Выпуск 64
Уважаемые подписчики рассылки!
Это завершающий выпуск в серии, посвященной утилите SQL*Plus. Посетители моего
сайта часто ищут информацию об SQL*Plus или вообще документацию по Oracle,
так почему бы им не помочь. Сообщите мне, пожалуйста, свое мнение о
данной публикации.
Команда SHOW
Команда SHOW позволяет получить значение системных переменных SQL*Plus, а также ряд информации о среде, базе данных, к которой подключена утилита, и об ошибках в последней выполненной команде. Эта команда имеет следующий синтаксис:
- <команда SHOW> ::=
- SHO[W] <опция>
- <опция> ::=
- <имя системной переменной>
| ALL
| BTI[TLE]
| ERR[ORS] [[<объект>] [<схема>.]<имя объекта>]
| LNO
| PARAMETERS [<часть параметра>]
| PNO
| REL[EASE]
| REPF[OOTER]
| REPH[EADER]
| SGA
| SPOO[L]
| SQLCODE
| TTI[TLE]
| USER - <объект> ::=
- FUNCTION
| PROCEDURE
| PACKAGE
| PACKAGE BODY
| TRIGGER
| VIEW
| TYPE
| TYPE BODY
| DIMENSION
| JAVA CLASS
Назначение опций представлено в табл. 16.
Таблица 16. Опции команды SHOW.
Опция | Назначение |
ALL | Выдает значения всех опций SHOW, кроме ERRORS и SGA, и всех системных переменных. |
BTI[TLE] | Выдает текущее определение BTITLE (нижнего колонтитула). |
ERR[ORS] |
Выдает ошибки компиляции хранимой программной единицы. При
компиляции выдается сообщение, что ошибки есть. Для получения
детальной информации об ошибках необходимо выполнить команду
SHOW ERRORS. При выполнении этой команды без аргументов,
выдается информация об ошибках при компиляции последней
созданной или измененной программной единицы. Если же указать
тип и имя программной единицы, будут выданы ошибки, полученные
при ее компиляции.
Выдается номер строки/столбца (в столбце LINE/COL), в которых обнаружена ошибка, и текст сообщения об ошибке (в столбце ERROR). Форматом выдачи можно управлять с помощью команды COLUMN. |
LNO | Показывает номер текущей строки на странице. |
PARAMETERS |
Выдает имя, тип и текущее значение одного или нескольких
параметров инициализации. При вызове без дополнительных
параметров, эта команда выдает информацию обо всех параметрах
инициализации. Если указать части имен параметров, будет выдана
информация только о параметрах, в имена которых указанные части
присутствуют.
Для использования этой опции необходима объектная привилегия SELECT на представление V_$PARAMETER. |
PNO | Выдает номер текущей страницы результатов. |
REL[EASE] | Выдает номер версии сервера Oracle, к которой подключена утилита SQL*Plus. |
REPF[OOTER] | Выдает текущее определение REPFOOTER. |
REPH[EADER] | Выдает текущее определение REPHEADER. |
SGA |
Выдает информацию об области SGA экземпляра, к которому
подключена утилита SQL*Plus.
Для использования опции SGA необходима объектная привилегия SELECT на представление V_$SGA. |
SPOO[L] | Выдает информацию о том, направляются ли результаты в файл или на принтер. |
SQLCODE | Выдает код завершения последнего оператора SQL. |
TTI[TLE] | Выдает текущее определение TTITLE (верхнего колонтитула). |
USER | Выдает имя текущего пользователя. |
Рассмотрим пример использования ряда опций команды SHOW:
17:21:24 SQL> connect system/manager Соединено. 17:21:47 SQL> show sga Total System Global Area 152581388 bytes Fixed Size 70924 bytes Variable Size 78741504 bytes Database Buffers 73691136 bytes Redo Buffers 77824 bytes 17:21:49 SQL> show sqlcode sqlcode 0 17:33:36 SQL> select * from emp; select * from emp * ошибка в строке 1: ORA-00942: таблица или представление пользователя не существует Затрач.время: 00:00:00.40 17:33:43 SQL> show sqlcode sqlcode 942 17:33:50 SQL> show spool spool OFF 17:34:52 SQL> show linesize linesize 128 17:36:07 SQL> show user USER имеет значение "SYSTEM" 17:36:10 SQL> show parameters buff NAME TYPE VALUE buffer_pool_keep string buffer_pool_recycle string db_block_buffers integer 17991 log_buffer integer 32768 use_indirect_data_buffers boolean FALSE
Другие полезные команды
Есть еще несколько полезных команд, не относящихся ни к одной из рассмотренных выше категорий. Вот некоторые из них.
Команда EXECUTE
Эта команда выполняет один оператор PL/SQL. Чаще всего, это вызов хранимой процедуры или функции. Команда, по сути, неявно создает анонимный блок, в котором выполняется оператор. Рассмотрим пример:
18:02:02 SQL> set timing off 18:02:36 SQL> set serverout on 18:02:41 SQL> exec ListBlackFridays(sysdate, 3); 13.09.02 13.12.02 13.06.03 Процедура PL/SQL успешно завершена.
Команда PASSWORD
Команда PASSWORD позволяет изменить пароль пользователя, не отображая его на экране. Эта команда имеет следующий простой синтаксис:
- <команда PASSWORD> ::=
- PASSW[ORD] [<имя пользователя>]
По умолчанию, изменяется пароль текущего пользователя. Чтобы изменять пароль другого пользователя, необходима соответствующая привилегия:
18:02:49 SQL> set time off SQL> connect system/manager Соединено. SQL> password scott Изменение пароля для scott Новый пароль: ***** Повторите новый пароль: ***** SQL> connect scott/tiger Соединено.
Команды администрирования базы данных
Ряд команд утилиты SQL*Plus предназначен для АБД. По сути, SQL*Plus - полнофункциональное средство администрирования. Доступные в SQL*Plus команды администрирования рассматриваются в данном разделе.
Запуск базы данных
Начиная с Oracle8, утилиту SQL*Plus можно использовать для запуска и остановки базы данных (ранее для этих целей использовались утилиты svrmgrl и SQL*DBA). Запуск базы данных состоит из трех шагов:
- Запуск экземпляра.
Экземпляр - это совокупность фоновых процессов и областей памяти, необходимых для доступа к базе данных Oracle. - Монтирование базы данных.
При монтировании база данных связывается с запущенным ранее экземпляром. - Открытие базы данных.
Открытие базы данных делает ее доступной пользователям для обычных операций.
Запуск базы данных в SQL*Plus выполняется командой STARTUP, имеющей следующий синтаксис:
- <команда STARTUP> ::=
- STARTUP [FORCE] [RESTRICT] [PFILE=<имя файла параметров>] <действие запуска>
- <действие запуска> ::=
- MOUNT [<имя базы данных>]
| OPEN [<опция открытия>][<имя базы данных>]
| NOMOUNT - <опция открытия> ::=
- READ ONLY
| READ WRITE [RECOVER]
| RECOVER
Все варианты команды STARTUP, так или иначе, запускают экземпляр (выделяется память и запускаются фоновые процессы). Опции команды STARTUP представлены в табл. 17.
Таблица 17. Опции команды STARTUP.
Опция | Назначение |
FORCE | Останавливает (с опцией ABORT) и потом перезапускает экземпляр. Это единственная опция команды STARTUP, которую можно применять к работающему экземпляру. Используется при отладке и в экстраординарных ситуациях. |
RESTRICT | Позволяет подключаться к базе данных после запуска только пользователям, обладающим системной привилегией RESTRICTED SESSION. Это ограничение в дальнейшем можно снять с помощью команды ALTER SYSTEM. |
PFILE | Задает нестандартный файл параметров инициализации. Если эта опция не указана, используется стандартный файл (в ОС UNIX это обычно $ORACLE_HOME/admin/dbs/init$ORACLE_SID.ora, а в Windows - %ORACLE_HOME%\database\init%ORACLE_SID%.ora). |
MOUNT | Монтирует указанную (стандартную локальную - значение параметра инициализации DB_NAME) базу данных, но не открывает ее. |
OPEN | Монтирует и открывает указанную базу данных. |
NOMOUNT | Экземпляр запускается, но база данных не монтируется. |
RECOVER | Требует выполнить восстановление носителей, если необходимо, перед запуском экземпляра. Применение этой опции аналогично выполнению команды RECOVER DATABASE с последующим обычным запуском. Так можно выполнять только полное восстановление. |
Эту команду может выполнять только пользователь, подключившийся как SYSOPER или SYSDBA к выделенному серверному процессу. По умолчанию используется опция OPEN. Команда STARTUP OPEN RECOVER монтирует и открывает базу данных, даже если полное восстановление закончилось неудачно.
Остановка базы данных
Команда SHUTDOWN в SQL*Plus останавливает текущий экземпляр Oracle, к которому подключен пользователь, и может при этом закрыть и демонтировать базу данных. Эту команду можно применять только для серверов версии 8 и выше.
Команда SHUTDOWN имеет следующий синтаксис:
- <команда SHUTDOWN> ::=
- SHUTDOWN <режим остановки>
- ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]
- <режим остановки> ::=
Назначение опций команды SHUTDOWN описано в табл. 18:
Таблица 18. Опции команды SHUTDOWN.
Опция | Назначение |
ABORT | Выполняет немедленную остановку базы данных, не дожидаясь завершения транзакций и отключения пользователей. Эта опция используется при аварийном завершении одного из фоновых процессов или при невозможности нормальной остановки. При перезапуске потребуется восстановление. |
IMMEDIATE | Не ждет завершения транзакций (автоматически их откатывает) и отключения пользователей. Новые подключения запрещаются. База данных закрывается и демонтируется, затем останавливается экземпляр. При перезапуске восстановление не потребуется. |
NORMAL |
Ждет отключения всех пользователей от базы данных
(новые подключения запрещены). База данных
закрывается и демонтируется, затем останавливается
экземпляр. При перезапуске восстановление не потребуется.
Эта опция используется по умолчанию. |
TRANSACTIONAL [LOCAL] |
Ждет завершения активных транзакций. При попытке
начать новую транзакцию происходит отключение сеанса.
После завершения всех активных транзакций все сеансы
автоматически отключаются. Затем остановка идет как
при вводе опции IMMEDIATE.
Режим LOCAL задает такой режим остановки только для локальных транзакций. Сервер не ждет завершения удаленных транзакций. |
Эту команду может выполнять только пользователь, подключившийся как SYSOPER или SYSDBA к выделенному серверному процессу. По умолчанию используется опция NORMAL.
Управление архивированием журналов повторного выполнения
Каждая база данных Oracle имеет набор из двух или более файлов журнала повторного выполнения, который обобщенно называют просто журналом повторного выполнения. В этот журнал записываются изменения данных, которые используются при восстановлении базы данных после сбоев. Для защиты от сбоя самого журнала сервер Oracle поддерживает его мультиплексирование (поддержку нескольких копий на разных дисках в виде группы) и архивирование.
Если база данных работает в режиме ARCHIVELOG, выполняется архивирование оперативного логического журнала, что обеспечивает полное восстановление при сбое как экземпляра, так и диска с журналами повторного выполнения, поскольку все изменения данных сохраняются в отдельном, заархивированном журнальном файле.
Для управления режимом архивирования журналов повторного выполнения утилита SQL*Plus предлагает команду ARCHIVE LOG, которая имеет следующий синтаксис:
- <команда ARCHIVE LOG > ::=
- ARCHIVE LOG <команда или журнал> [TO <место назначения>]
- <команда или журнал> ::=
- LIST | STOP | START | NEXT | ALL | <номер журнала>
Эта команда позволяет начать или остановить автоматическое архивирование оперативных файлов журнала повторного выполнения, явно заархивировать указанные по номерам файлы или выдать информацию о них. Опции команды ARCHIVE LOG описаны в табл. 19.
Таблица 19. Опции команды ARCHIVE LOG.
Опция | Назначение |
LIST | Выдает информацию о режиме архивирования, каталоге, в котором создаются файлы архива, номерах текущей, последней заархивированной и требующей архивирования группы журналов. Вид выдаваемой информации представлен в примере ниже. |
STOP | Останавливает автоматическое архивирование. Если экземпляр по- прежнему работает в режиме ARCHIVELOG и все группы журналов повторного выполнения заполнены, работа базы данных приостанавливается, пока файл журнала повторного выполнения не будет заархивирован (например, командами ARCHIVE LOG NEXT или ARCHIVE LOG ALL). |
START | Включает автоматическое архивирование. Запускает фоновый процесс ARCH, выполняющий автоматическое архивирование при необходимости. Если запускается процесс ARCH и в команде указано имя файла, этот файл становится новым стандартным местом назначения для архива. Процесс ARCH запускается автоматически при запуске экземпляра, если параметр инициализации LOG_ARCHIVE_START имеет значение TRUE. |
NEXT | Явно архивирует следующую заполненную, но еще не заархивированную оперативную группу файлов журнала повторного выполнения. |
ALL | Явно архивирует все заполненные, но еще не заархивированные оперативные группы файлов журнала повторного выполнения. |
номер журнала | Вызывает архивирование любой еще доступной оперативной группы файлов журнала повторного выполнения с указанным номером последовательности. Если такая группа не найдена, выдается сообщение об ошибке. Эта опция позволяет повторно выполнить архивирование группы. |
Если место назначения для архива не указано явно в командной строке, используется параметр инициализации LOG_ARCHIVE_DEST (стандартное место назначения). Если новое место назначения указано с опцией START, оно становится стандартным. В остальных случаях туда записываются только соответствующие архивы, инициированные данной командой.
Команду ARCHIVE LOG может выполнять только пользователь, подключившийся как SYSOPER или SYSDBA. Она применяется только к текущему экземпляру. Для управления другими экземплярами и кластером в целом используется SQL-оператор ALTER SYSTEM.
Если все оперативные группы файлов журнала повторного выполнения заполнены и не доступны для повторного использования (т.е. сервер работает в режиме ARCHIVELOG, и они не скопированы) работа базы данных приостанавливается. Явное архивирование решает эту проблему.
Рассмотрим простой пример использования команды ARCHIVE LOG для просмотра информации о текущем состоянии архивирования журналов повторного выполнения:
SQL> archive log list Режим журнала базы данных Режим архива Автоматическое архивирование Включено Место размещения архива g:\oracle\oradata\training Самая старая последовательность оперативных журналов 745 Следующая последовательность журналов для архивирования 747 Текущая последовательность журналов 747 SQL> archive log 745 ORA-16013: журнал 1 с номером последовательности 745 не требует архивирования ORA-00312: оперативный протокол 1 процесса 1: 'G:\ORACLE\ORADATA\TRAINING\REDO01.LOG'
Восстановление базы данных
Если база данных работала в режиме ARCHIVELOG, после сбоя носителя ее можно полностью или частично восстановить. Для этого в SQL*Plus предлагается команда RECOVER, имеющая следующий, весьма объемный, синтаксис:
- <команда RECOVER> ::=
- RECOVER <режим восстановления> [<степень параллелизма>]
- <режим восстановления> ::=
- <общее восстановление> | <управляемое восстановление> | END BACKUP
- <общее восстановление> ::=
- [AUTOMATIC] [FROM <местонахождение>] <команда восстановления>
- <команда восстановления> ::=
- <вид восстановления> [TEST ALLOW <целое число> CORRUPTION]
| CONTINUE [DEFAULT]
| CANCEL - <вид восстановления> ::=
- <полное восстановление>
| <частичное восстановление>
| LOGFILE <имя файла> - <полное восстановление> ::=
- [STANDBY] DATABASE { <уровень восстановления >}
<уровень восстановления> UNTIL <точка восстановления>
| USING BACKUP CONTROLFILE - <точка восстановления> ::=
- CANCEL | TIME <дата> | CHANGE <целое число>
- <частичное восстановление> ::=
- <табличные пространства или файлы данных>
| STANDBY <табличные пространства или файлы данных>
UNTIL [CONSISTENT] [WITH] CONTROLFILE - <табличные пространства или файлы данных> ::=
- TABLESPACE <табличное пространство>{, <табличное пространство>}
| DATAFILE <файл данных>{, <файл данных>} - <управляемое восстановление> ::=
- MANAGED STANDBY DATABASE <опция управляемого восстановления>
- <опция управляемого восстановления> ::=
- NODELAY
| [TIMEOUT] <целое число>
| CANCEL [IMMEDIATE] [NOWAIT]
| DISCONNECT [FROM SESSION] [FINISH [NOWAIT]] - <степень параллелизма> ::=
- PARALLEL [<целое число>] | NOPARALLEL
Опции команды RECOVER кратко описаны в табл. 20.
Таблица 20. Опции команды RECOVER.
Опция | Назначение |
AUTOMATIC | Автоматически генерирует имя архивного файла журнала повторного выполнения, необходимого для продолжения операции восстановления. Для этого используются значения параметров конфигурации LOG_ARCHIVE_DEST и LOG_ARCHIVE_FORMAT (или соответствующие стандартные значения). Если файл с таким именем не найден, SQL*Plus запрашивает имя файла, выводя автоматически сгенерированное в качестве подсказки. Имя запрашивается также, если не указана ни опция AUTOMATIC, ни опция LOGFILE. Если заранее известно, что архивирование выполнялось в файл с нестандартным именем, имеет смысл сразу указать опцию LOGFILE. |
FROM <местонахождение> | Задает местонахождение архивных файлов журнала повторного выполнения. По умолчанию используется значение параметра инициализации LOG_ARCHIVE_DEST. Можно также задать местонахождение архивных файлов с помощью команды SQL*Plus SET LOGSOURCE. |
LOGFILE | Продолжает восстановление носителей, применяя указанный файл журнала повторного выполнения. При восстановлении в интерактивном режиме (AUTORECOVERY OFF), запрашивает новое имя файла, если указанный файл журнала не найден. |
TEST ALLOW <целое число> CORRUPTION | В случае повреждения файла журнала указывает, при скольких поврежденных блоках еще можно продолжать восстановление. В ходе обычного восстановления это значение не должно быть более 1. |
CONTINUE | Продолжает восстановление нескольких экземпляров после прерывания для отключения восстановления одного из них. |
CONTINUE DEFAULT | Продолжает восстановление, используя автоматически сгенерированное имя архивного файла журнала повторного выполнения, если оно не указано явно. Аналогично опции AUTOMATIC, но не запрашивает альтернативное имя файла, если файл не найден. |
CANCEL | Прерывает восстановление, ведущееся до CANCEL (см. опцию UNTIL CANCEL). |
STANDBY DATABASE | Восстанавливает резервную базу данных, используя управляющий файл и архивные файлы журнала повторного выполнения основной базы данных. Резервная база данных должна быть смонтирована, но не открыта. |
DATABASE | Восстанавливает всю базу данных в целом. |
UNTIL CANCEL | Задает неполное восстановление, до прерывания администратором. Необходимо указать или подтвердить автоматически сгенерированные имена файлов журналов повторного выполнения. Восстановление завершится, если указать CANCEL вместо очередного имени файла. |
UNTIL TIME | Задает неполное восстановление до момента времени. Момент времени указывается в одиночных кавычках по формату 'YYYY-MM-DD:HH24:MI:SS'. |
UNTIL CHANGE | Задает неполное восстановление до указанного по номеру изменения (SCN), не включая его. |
USING BACKUP CONTROLFILE | Указывает, что вместо текущего управляющего файла должна использоваться его резервная копия. |
TABLESPACE | Восстанавливает указанные табличные пространства текущей базы данных (до 16). |
DATAFILE | Восстанавливает любое количество указанных файлов данных. |
STANDBY TABLESPACE | Реконструирует потерянное или поврежденное табличное пространство на резервной базе данных, используя архивные файлы журнала повторного выполнения и управляющий файл основной базы данных. |
STANDBY DATAFILE | Реконструирует потерянный или поврежденный файл данных на резервной базе данных, используя архивные файлы журнала повторного выполнения и управляющий файл основной базы данных. |
UNTIL CONSISTENT WITH CONTROLFILE | Указывает, что восстановление старого табличного пространства или файла данных использует текущий управляющий файл резервной базы данных. |
MANAGED STANDBY DATABASE | Задает режим устойчивого восстановления резервной базы данных. В этом режиме предполагается, что резервная база данных является активным компонентом. В таком режиме можно восстанавливать только носители. |
NODELAY | Немедленно применяет отложенный архивный журнал к резервной базе данных, независимо от установки параметра DELAY в параметре инициализации LOG_ARCHIVE_DEST_n в основной базе данных. |
TIMEOUT | Задает период ожидания (в минутах) для операции устойчивого восстановления. Если за это время не станет доступным архивный журнал повторного выполнения, процесс восстановления завершается с ошибкой. Если эта конструкция не указана, резервная база данных остается в состоянии ожидания восстановления, пока не будет повторно выполнена команда RECOVER с конструкцией CANCEL или пока не произойдет остановка или сбой экземпляра. |
CANCEL | При управляемом восстановлении конструкция CANCEL прерывает восстановление резервной базы данных после применения текущего архивного файла повторного выполнения. Приглашение SQL*Plus снова появится после остановки процесса восстановления. |
CANCEL IMMEDIATE | Прерывает управляемое восстановление резервной базы данных после применения текущего архивного файла повторного выполнения или после прочтения следующего, в зависимости от того, какое событие произойдет раньше. Приглашение SQL*Plus снова появится после остановки процесса восстановления. Команду RECOVER CANCEL IMMEDIATE нельзя выполнять из того же сеанса, из которого была выполнена команда RECOVER MANAGED STANDBY DATABASE. |
CANCEL NOWAIT | Прерывает управляемое восстановление резервной базы данных после прочтения следующего файла журнала повторного выполнения и выдает приглашение SQL*Plus. |
DISCONNECT FROM SESSION | Указывает, что в ходе управляемого восстановления архивные файлы повторного выполнения должны применяться отдельным фоновым процессом, не блокирующим текущий сеанс. |
FINISH | Немедленно восстанавливает резервные файлы текущего журнала повторного выполнения резервной базы данных. Используется при сбое основной базы данных. |
NOWAIT | Возвращает управление немедленно, не дожидаясь завершения процесса восстановления. |
Для выполнения команды RECOVER необходимо обладать ролью SYSDBA и подключиться через выделенный серверный процесс.
Чтобы можно было выполнить восстановление носителей для всей базы данных в целом (для всех табличных пространств), база данных должна быть смонтирована, но закрыта, а все требующие восстановления табличные пространства должны быть включены (online). Для восстановления же отдельного табличного пространства база данных должна быть смонтирована и открыта, а само табличное пространство отключено. Для восстановления файла данных, база данных может оставаться открытой и смонтированной, а поврежденные файлы - отключены (если только они не входят в табличное пространство SYSTEM).
Рассмотрим простой пример остановки, запуска и восстановления носителя из SQL*Plus:
SQL> connect system/manager as sysdba Соединено. SQL> shutdown База данных закрыта. База данных размонтирована. Экземпляр ORACLE завершен. SQL> startup mount Экземпляр ORACLE запущен. Total System Global Area 152581388 bytes Fixed Size 70924 bytes Variable Size 78741504 bytes Database Buffers 73691136 bytes Redo Buffers 77824 bytes База данных смонтирована. SQL> recover database until time '2001-12-09:00:00:00' Восстановление носителя завершено. SQL> alter database open;
Дополнительные источники информации
- SQL*Plus. User's Guide and Reference.
- Oracle9i. Database Concepts.
- SQL*Plus. Quick Reference.
- SQL*Plus Getting Started for Windows.
- Кевин Луни, Марлен Терьо. Oracle8i. Настольная книга администратора. - М.: Издательство <ЛОРИ>, 2001. ISBN 5-85582-113-7
- Сайт Ask Tom
Упражнения
Для освоения всех возможностей утилиты SQL*Plus необходим практический опыт ее использования. Упражнения позволят вам его получить.
Упражнение 1
Напишите командный файл SQL*Plus, выдающий все записи указанной таблицы в файл с именем <имя таблицы>.unl в виде строк, поля которых разделены символом вертикальной черты (|). Заголовки столбцов не выдавать.
Например, для таблицы dept содержимое файла должно иметь следующий вид:
10|ACCOUNTING|NEW YORK 20|RESEARCH |DALLAS 30|SALES |CHICAGO 40|OPERATIONS|BOSTON 50|TRAINING |KIEV
Файл такого вида подходит для загрузки в базы данных Informix :).
Упражнение 2
Напишите командный файл SQL*Plus, выдающий данные всех таблиц в схеме данного пользователя в файлы с соответствующими именами в виде полей через заданный разделитель, как в упражнении 1.
Упражнение 3
Напишите командный файл SQL*Plus, выдающий на экран данные таблицы emp, предваряя денежные суммы знаком доллара и заменяя неизвестные значения прочерками. Снабдите создаваемый отчет заголовком и колонтитулами. Для каждого отдела выдайте значение средней заработной платы. В конце отчета выдайте сумму начисленных сотрудникам комиссионных.
Упражнение 4
Напишите командный файл SQL*Plus, выдающий по указанному имени представления текст оператора для его создания (CREATE VIEW) в файл с именем <имя>.sql. См. представление USER_VIEWS в словаре данных, описывающее представления данного пользователя. Длина каждой строки в файле не должна превышать 80 символов, чтобы файл было удобно читать.
Упражнение 5
Напишите сценарий SQL*Plus (без применения PL/SQL), увеличивающий вдвое зарплату всем сотрудникам отдела, средняя зарплата в котором ниже, чем средняя зарплата по всей организации (см. таблицы emp и dept). Затем сценарий должен выдать (в указанный при вызове файл) отчет о сотрудниках с указанием средней зарплаты по отделам. Снабдите столбцы отчета заголовками на русском языке.
Copyleft (no c) 2001-2004 В. Кравчук, OpenXS Initiative, Cоставление, перевод, дополнения, упражнения и примеры
Прежние выпуски
Все вышедшие выпуски рассылки можно найти на сайте рассылки. Там же реализована возможность поиска материалов по ключевым словам (с помощью Google. Работает.)
Дальнейшие планы автора
Вот вам песня Умки на прощанье:
Райком закрыт - все ушли на фронт Адком открыт - добро пожаловать в ад Сияют аксельбанты, заседает бомонд Играют музыканты, инструменты блестят В своих стерильных перчатках входит главный герой Земля без звука и наркоза ложится под нож Сейчас ударит фонтаном ее черная кровь И съемочная группа толпится, подставляя стакан Райком закрыт - все ушли на фронт! Приходит ночь, все отходит ко сну Солдат не спит, солдат читает устав Устав гласит: "Солдат, не спи на посту" Ночная птица тихо свистит в кустах Райком закрыт - все ушли на фронт Забудь свое имя, забудь свое лицо Забудь все то, зачем тебя сделал Бог И как автомат отправляйся в военкомат Хватай автомат и топай куда пошлют Запомни только свой номер, запомни код Из детства помни одно - как смотрел салют Закрой свой рот и тупо шагай вперед И если тебя не убьют, то потом нальют Закрыты магазины, закрыты ларьки Закрыта звукозапись, закрыт видеопрокат Пираты не дремлют, зато солдаты не спят Райком закрыт - добро пожаловать в ад Райком закрыт - все ушли на фронт!
Такие дела.
P.S. В марте рассылка, видимо, выходить не будет. По крайней мере, пока не будет сделано все то, что я уже себе наметил. Следите за сайтом.
В следующем выпуске
Пишите, что вам хотелось бы узнать о Oracle. Например, сюда.
С наилучшими пожеланиями,
В.К.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||