Руководство по языку sql


Download 1.22 Mb.
Pdf ko'rish
bet45/62
Sana23.04.2023
Hajmi1.22 Mb.
#1393455
1   ...   41   42   43   44   45   46   47   48   ...   62
Bog'liq
Firebird3 SQL features

EXECUTE BLOCK 
RETURNS ( 
INT
RNAME CHAR(31)) 
AS 
DECLARE C SCROLL CURSOR FOR ( 
SELECT 
ROW_NUMBER() OVER(ORDER BY RDB$RELATION_NAME) AS N, 
RDB$RELATION_NAME 
FROM 
RDB$RELATIONS 
ORDER BY RDB$RELATION_NAME); 
BEGIN 
OPEN C; 
-- перемещаемся на первую запись (N=1) 
FETCH FIRST FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на 1 запись вперѐд (N=2) 


Новые возможности языка SQL Firebird 3.0 
75 
FETCH NEXT FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на пятую запись (N=5) 
FETCH ABSOLUTE 5 FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на 1 запись назад (N=4) 
FETCH PRIOR FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на 3 записи вперѐд (N=7) 
FETCH RELATIVE 3 FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на 5 записей назад (N=2) 
FETCH RELATIVE -5 FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на первую запись (N=1) 
FETCH FIRST FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
-- перемещаемся на последнюю 
FETCH LAST FROM C; 
RNAME = C.RDB$RELATION_NAME; 
N = C.N; 
SUSPEND
CLOSE C; 
END 
Исключения с параметрами 
Исключение теперь могут быть определены с сообщением, содержащим 
слоты для параметров, которые заполняются при возбуждении исключения. 
Синтаксис: 
EXCEPTION  USING (); 
:= [, [, …]] 


Новые возможности языка SQL Firebird 3.0 
76 
Замечания: 
 
Статус вектор генерируется, используя комбинацию кодов isc_except, number>, isc_formatted_exception, , parameters>. 
Поскольку используется новый код ошибки (isc_formatted_exception), клиент 
должен быть версии 3.0 или по крайней мере использовать firebird.msg от версии 
3.0 для того чтобы правильно преобразовать статус вектор в строку. 
Параметры рассматриваются слева направо. Каждый параметр передаѐтся в 
оператор возбуждающий исключение как N-ый, N начинается с 1: 

Если N-ый параметр не передан, его слот не заменяется; 

Если передано значение NULL, слот будет заменѐн на строку „***null***‟; 

Если количество передаваемых параметров будет больше, чем содержится в 
сообщении исключения, то лишние будут проигнорированы; 

Общая длина сообщения, включая значения параметров, все еще ограничена 
1053 байтами. 
Примеры
1. 
Использование параметризованного исключения 

Download 1.22 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   62




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling