Поиск

L2AVADON

СТАТЬИ

Алгоритмы сопоставления

По умолчанию повторное использование курсоров в базе данных тре­бует их полного совпадения. За пределами PL/SQL это правило не тер­пит компромиссов - ASCII-значения должны совпадать в точности. Есть только черное и белое, и никаких полутонов. Курсоры или совпа­дают, или нет. В PL/SQL компилятор, переформатируя курсоры, ста­рается помочь их повторному использованию, но это все, что он может сделать. Это ограничение особенно досадно, когда курсоры отличают­ся лишь текстом литералов. Рассмотрим два курсора:

SELECT order_date FROM orders WHERE order_number = '1'; SELECT order_date FROM orders WHERE order_number = '4';

Оба они выполняют одно и то же действие, извлекая значение or-derdate для заданного заказа, а сумма их ASCII-значений отличается всего на 3 единицы. Но стараниями алгоритма точного сопоставления оба удостаиваются собственного полного разбора и места в разделяе­мом пуле (даже если находятся в коде PL/SQL).

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17