Oracle. Ocibindbyname объсните пожалуйста человеческим языком для чего принципиально нужна эта функция ??

программирование oracle

$s = OCIParse( $c, "INSERT INTO fdr_worker( worker_f, worker_i, worker_o, worker_tel, worker_dolzh_id_fk, worker_role_id_fk, worker_login ,worker_password )
VALUES ( :bind1 , :bind2 , :bind3 , :bind4 , :bind5 , :bind6 , :bind7 , :bind8 )" );
OCIBindByName( $s, ":bind1", $var1 );
OCIBindByName( $s, ":bind2", $var2 );
OCIBindByName( $s, ":bind3", $var3 );
OCIBindByName( $s, ":bind4", $var4 );
OCIBindByName( $s, ":bind5", $var5 );
OCIBindByName( $s, ":bind6", $var6 );
OCIBindByName( $s, ":bind7", $var7);
OCIBindByName( $s, ":bind8", $var8 );
OCIExecute( $s, OCI_DEFAULT );

Если в данном случае можно обойтись без оракл-заглушек ???
Ответы:
интересная теме, я правда давно учил оракл и уже забыл все. тут используются имена bind1  и тд для быстрого выполнения запроса
Немного теории.
Перед выполнением запроса Oracle производит разбор запроса. Если запрос исполняется первый раз, то производится полный разбор - анализ, оптимизация, генерация источника строк и выполнение. Оптимизация - самый затратный процесс, в процессе которого Oracle определяет как соединить таблицы, какие индексы задействовать и т.д.
После выполнения сам разобранный запрос сохраняется в кеше.
Используя BIND- переменные запроса (по другому - связываемые переменные или переменные привязки) позволяют Oracle не делать повторный полный разбор запроса, а просто найти в кеше уже разобранный запрос и подставить туда новые значения, что существенно ускоряет работу приложения.
Описанная схема мною упрощена, но запомните главное - использование переменных привязки ускоряет работу базы.
Про второй вопрос - да, можно. Например, напрямую прописать данные в запросе. Правда, можно нарваться на проблему с типами данных.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.