Динамический SQL в ORACLE (часть 4 - Фишки, секреты и типичные ошибки)
Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA
Подари, продай, обменяй - множество недорогих и отличных вещей: объявления вместо AVITO - ВКонтакте
В этом разделе показано, как в использовать динамический SQL и избежать некоторых распространенных ошибок.
Повышение производительности
В приведенном ниже примере, Oracle открывает различные курсоры для каждого отдельного значения emp_id . Это может привести к конфликту ресурсов и резкой потере производительности.
Чтобы избежать данной ошибки можно использовать связанные переменные, как показано ниже. Это позволяет повторно использовать Oracle один и тот же курсор для различных значений emp_id .
читать дальше...
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA
Подари, продай, обменяй - множество недорогих и отличных вещей: объявления вместо AVITO - ВКонтакте
В этом разделе показано, как в использовать динамический SQL и избежать некоторых распространенных ошибок.
Повышение производительности
В приведенном ниже примере, Oracle открывает различные курсоры для каждого отдельного значения emp_id . Это может привести к конфликту ресурсов и резкой потере производительности.
CREATE PROCEDURE fire_employee (emp_id NUMBER) AS BEGIN EXECUTE IMMEDIATE 'DELETE FROM emp WHERE empno = ' || TO_CHAR(emp_id); END;
Чтобы избежать данной ошибки можно использовать связанные переменные, как показано ниже. Это позволяет повторно использовать Oracle один и тот же курсор для различных значений emp_id .
CREATE PROCEDURE fire_employee (emp_id NUMBER) AS BEGIN EXECUTE IMMEDIATE 'DELETE FROM emp WHERE empno = :num' USING emp_id; END;
читать дальше...