Начало работы в Oracle 1. Вызвать SQL Plus (или Work Sheet). Ввести имя, пароль и строку связи (получить их у преподавателя). 2. Команды (create, select и др.) можно набирать непосредственно в окне SQL Plus или переносить через буфер (Ctrl+C, Ctrl+V). 3. Запуск файла sql как командного файла: SQL> @имя_файла_с_полным_путём; Если файл имеет расширение sql, его можно не указывать. 4. Сохранение потока вывода на экран в файле: SQL> spool имя_файла_с_полным_путём 5. Завершение сохранения потока вывода в файл: SQL> spool off 6. Просмотр структуры таблицы: SQL> desc имя_таблицы 7. Просмотр содержимого таблицы: SQL> select * from имя_таблицы; 8. Просмотр списка ваших таблиц: SQL> select table_name from user_tables; 9. Просмотр списка ваших представлений: SQL> select view_name from user_views; 10. Просмотр списка всех представлений (в том числе, представлений словаря-справочника данных): SQL> select view_name from dba_views; 11. Получение текущей даты (функция sysdate): SQL> select sysdate from dual; Запуск любой функции: SQL> select <имя_функции(параметры)> from dual; Запуск любой процедуры: SQL> exec <имя_процедуры(параметры)>; Если параметров у функции или процедуры нет, то скобки не указываются. 12. Фоматирование результатов вывода: SQL> set linesize 200 -- задание длины строки вывода на экран SQL> set pagesize 200 -- задание длины страницы вывода на экран SQL> column имя_поля format a20 -- задание длины символьного поля при выводе на экран SQL> column имя_поля format 999.99 -- задание формата вывода на экран числового поля 13. Работа с датами. Таблица из одного поля: create table tab (dat date); -- Добавление данных (текущая дата и время с точностью до секунды): SQL> insert into tab values(sysdate); -- Добавление данных (дата и время с точностью до секунды): SQL> insert into tab values(to_date('25.10.2007:12:30:00', 'dd.mm.yyyy:hh24:mi:ss')); -- Добавление данных (только текущая дата): SQL> insert into tab values(trunc(sysdate)); -- Вывод данных (только дата): SQL> select * from tab; -- Вывод данных (дата и время): SQL> select to_char(dat, 'dd.mm.yyyy'), to_char(dat, 'hh25:mi') from tab; -- выведет дату и время с точностью до минуты 14. Выход из системы: SQL> exit Если выйти путём закрытия окна, результаты последней транзакции будут отменены! 15. Создание функции для работы с датами: -- возвращает год из даты create or replace function fyear(y date) return number is begin return to_number(to_char(y, 'yyyy')); end; / create public synonym year for fyear; -- возвращает месяц из даты: create or replace function fmonth(y date) return number is begin return to_number(to_char(y, 'mm')); end; / create public synonym month for fmonth; -- возвращает число из даты: create or replace function fday(y date) return number is begin return to_number(to_char(y, 'dd')); end; / create public synonym day for fday; -- количество полных лет между двумя датами create or replace function fyears(pnt date) return number is y number := year(sysdate); m number := month(sysdate); d number := day(sysdate); ypnt number; mpnt number; dpnt number; begin ypnt := y-year(pnt); mpnt := month(pnt); dpnt := day(pnt); if (mpntm) then return ypnt-1; end if; -- месяц один и тот же, сравниваем дни if (dpnt=d) then return ypnt-1; end if; end; / create public synonym years for fyears; -- другой вариант create or replace function fyears(pnt date) return number is y number := fyear(sysdate); m number := fmonth(sysdate); d number := fday(sysdate); ypnt number; mpnt number; dpnt number; begin ypnt := y-fyear(pnt); mpnt := fmonth(pnt); dpnt := fday(pnt); if (mpntm) then return ypnt-1; end if; -- месяц один и тот же, сравниваем дни if (dpnt=d) then return ypnt-1; end if; end; /