plsql учебник
Начало работы с PLSQL
Поиск…
замечания
В этом разделе представлен обзор того, что такое plsql, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в рамках plsql и ссылаться на связанные темы. Поскольку Documentation for plsql является новым, вам может потребоваться создать начальные версии этих связанных тем.
Определение PLSQL
PL / SQL (язык процедур / язык структурированных запросов) является процедурным расширением Oracle Corporation для SQL и реляционной базы данных Oracle. PL / SQL доступен в Oracle Database (начиная с версии 7), в базе данных TimesTen в памяти (начиная с версии 11.2.1) и IBM DB2 (начиная с версии 9.7).
Базовый блок в PL / SQL называется блоком, который состоит из трех частей: декларативной части, исполняемой части и части исключения.
DECLARE
<declarations section>
BEGIN
<executable command(s)>
EXCEPTION
<exception handling>
END;
Объявления. Этот раздел начинается с ключевого слова DECLARE. Это необязательный раздел и определяет все переменные, курсоры, подпрограммы и другие элементы, которые будут использоваться в программе.
Исполняемые команды - этот раздел заключен между ключевыми словами BEGIN и END, и это обязательный раздел. Он состоит из исполняемых инструкций PL / SQL программы. Он должен иметь по крайней мере одну исполняемую строку кода, которая может быть просто командой NULL, чтобы указать, что ничего не должно выполняться.
Обработка исключений - этот раздел начинается с ключевого слова EXCEPTION. Этот раздел снова является необязательным и содержит исключения (исключения), которые обрабатывают ошибки в программе.
Каждый оператор PL / SQL заканчивается точкой с запятой (;). Блоки PL / SQL могут быть вложены в другие блоки PL / SQL с помощью BEGIN и END.
В анонимном блоке требуется только исполняемая часть блока, другие части не являются обязательными. Ниже приведен пример простого анонимного кода, который не делает ничего, кроме выполнения без сообщений об ошибках.
BEGIN
NULL;
END;
/
Отсутствие команды excecutable приводит к ошибке, поскольку PL / SQL не поддерживает пустые блоки. Например, исключение кода ниже приводит к ошибке:
BEGIN
END;
/
Приложение вызовет ошибку:
END;
*
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
Символ «*» в строке ниже ключевого слова «END»; означает, что блок, который заканчивается этим блоком, пуст или плохо сконструирован. Каждый блок исполнения нуждается в инструкциях, даже если он ничего не делает, как в нашем примере.
Привет, мир
set serveroutput on
DECLARE
message constant varchar2(32767):= 'Hello, World!';
BEGIN
dbms_output.put_line(message);
END;
/
set serveroutput on
команд set serveroutput on
SQL * Plus и SQL Developer необходим для включения вывода dbms_output
. Без команды ничего не отображается.
end;
строка сигнализирует о завершении анонимного блока PL / SQL. Чтобы запустить код из командной строки SQL, вам может потребоваться ввести /
в начале первой пустой строки после последней строки кода. Когда вышеуказанный код выполняется в приглашении SQL, он производит следующий результат:
Hello, World!
PL/SQL procedure successfully completed.
О PLSQL
PL / SQL означает расширение процедурных языков для SQL. PL / SQL доступен только как «технология разрешения» в других программных продуктах; он не существует как автономный язык. Вы можете использовать PL / SQL в реляционной базе данных Oracle, в Oracle Server и в средствах разработки приложений на стороне клиента, таких как Oracle Forms. Вот некоторые из способов использования PL / SQL:
- Чтобы создать хранимые процедуры. ,
- Чтобы создать триггеры базы данных.
- Для реализации клиентской логики в приложении Oracle Forms.
- Чтобы связать домашнюю страницу World Wide Web с базой данных Oracle.
Разница между% TYPE и% ROWTYPE.
%TYPE
: Используется для объявления поля с тем же типом, что и столбец указанной таблицы.
DECLARE
vEmployeeName Employee.Name%TYPE;
BEGIN
SELECT Name
INTO vEmployeeName
FROM Employee
WHERE RowNum = 1;
DBMS_OUTPUT.PUT_LINE(vEmployeeName);
END;
/
% ROWTYPE: используется для объявления записи с теми же типами, что и в указанной таблице, представлении или курсоре (= несколько столбцов).
DECLARE
rEmployee Employee%ROWTYPE;
BEGIN
rEmployee.Name := 'Matt';
rEmployee.Age := 31;
DBMS_OUTPUT.PUT_LINE(rEmployee.Name);
DBMS_OUTPUT.PUT_LINE(rEmployee.Age);
END;
/
Создать или заменить вид
В этом примере мы создадим представление.
Вид в основном используется как простой способ получения данных из нескольких таблиц.
Пример 1:
Просмотр с выбором на один стол.
CREATE OR REPLACE VIEW LessonView AS
SELECT L.*
FROM Lesson L;
Пример 2:
Просмотр с помощью выбора на нескольких таблицах.
CREATE OR REPLACE VIEW ClassRoomLessonView AS
SELECT C.Id,
C.Name,
L.Subject,
L.Teacher
FROM ClassRoom C,
Lesson L
WHERE C.Id = L.ClassRoomId;
Чтобы вызвать эти представления в запросе, вы можете использовать оператор select.
SELECT * FROM LessonView;
SELECT * FROM ClassRoomLessonView;
Создать таблицу
Ниже мы создадим таблицу с тремя столбцами.
В столбце Id
должен быть заполнен, так что мы определяем его NOT NULL
.
В столбце « Contract
мы также добавляем чек, чтобы разрешалось только «Y» или «N». Если вставленная вставка и этот столбец не указаны во время вставки, то по умолчанию вставлен «N».
CREATE TABLE Employee (
Id NUMBER NOT NULL,
Name VARCHAR2(60),
Contract CHAR DEFAULT 'N' NOT NULL,
---
CONSTRAINT p_Id PRIMARY KEY(Id),
CONSTRAINT c_Contract CHECK (Contract IN('Y','N'))
);