Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 16

Execute immediate

25.11.2014, 14:46. Показов 1557. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ли способ мультиплексить значение параметра на несколько ключей шаблона?
execute immediate 'insert into table2 select * from table where dt1 = :1 or dt2 = :1' using dateParam;
т.е. чтобы значение dateParam подставилось и в :1 и в :2.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2014, 14:46
Ответы с готовыми решениями:

Execute immediate
Вечер добрый. Собственно, о проблеме.. Вот кусок кода: execute immediate 'select count(*) from ' || p_tab_name_for_compare into...

Execute Immediate В переменную
Есть курсор с полями table_name , table_owner и partition_name Нужно подсчитать сколько строк в каждой партиции и для определенного...

EXECUTE IMMEDIATE vStr
Доброго времени суток, уважаемы форумчане! Прошу Вашей помощи. Застрял на следующей проблеме... При использовании EXECUTE IMMEDIATE с...

7
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
25.11.2014, 14:57
Цитата Сообщение от geometric
Есть ли способ мультиплексить значение параметра на несколько ключей шаблона
Нет
0
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 16
26.11.2014, 08:59  [ТС]
Ниудобна жэ!

Эххх ... в python такой офигительный строковый шаблонизатор.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
26.11.2014, 10:08
Цитата Сообщение от geometric Посмотреть сообщение
Ниудобна жэ
Не так уж часто это нужно (как и execute immediate вообще).
Тем паче, что конкретно твое условие можно переделать
SQL
1
WHERE :1 IN (dt1, dt2)
PS
Не стоит увлекаться dynamic SQL - ухудшает производительность
0
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 16
26.11.2014, 19:22  [ТС]
Абсолютно согласен. Но это ещё надо моим коллегам объяснить )
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
27.11.2014, 00:48
Цитата Сообщение от Grossmeister Посмотреть сообщение
Тем паче, что конкретно твое условие можно переделать
WHERE :1 IN (dt1, dt2)
Это что ещё за фокусы? Можно пример.
Цитата Сообщение от geometric Посмотреть сообщение
Эххх ... в python такой офигительный строковый шаблонизатор.
Нельзя сравнивать pl/sql и python, у них разное назначение и разные особенности разработки, в питоне не так то сложно заявить что теперь вот у нас будет такая фича, старый код может сломаться, в pl/sql о таком даже думать нельзя, не то что говорить.
Вот представь если в oracle кто-то задумает улучшить работу с immediate и сделает чтобы в твоём коде всюду где :1 подставлялось одно и то же значение, представляешь сколько кода сломаеться где мапилось
Oracle 11 SQL
1
2
'...:1, :1'
USING same_arg, same_arg;
Хотя я был бы не против если бы выкатили какой-то PL/SQL 2.0, который например надо было бы компилить с какой-то опцией или директиву в начале кода добавлять чтобы выделить его и чтобы этот PL/SQL 2.0 был чуть поудобнее и учитывал все прошлые недочёты, в первую очередь я хотел бы возможность в pl/sql блоке делать проверки по exists вроде этого
Oracle 11 SQL
1
2
3
IF EXISTS(SELECT 1 FROM X WHERE id = 100500) THEN
  ...
END IF;
Как же я ненавижу заводить переменные на этот случай, присваивать им результат и только потом в if'е их использовать ...
Да и так в целом самому pl/sql уже больше 20 лет, t-sql не меньше, хотелось бы каких-то современных реализаций с новыми фичами, появление у оракла всё новых и новых пакетов это хорошо и удобно, но хотелось бы большего.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
27.11.2014, 10:19
Цитата Сообщение от Gepar Посмотреть сообщение
Это что ещё за фокусы?
В чем сомнения? В том, что можно писать
SQL
1
WHERE fld1 IN (val1, val2)
но нельзя
SQL
1
WHERE val1 IN (fld1, fld2)
?
Или уточни вопрос
0
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 16
01.12.2014, 17:27  [ТС]
Про exists совершенно согласен. В постгре такие штуки работают на ура. Вообще pgplsql гораздо удобнее ораклового.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2014, 17:27
Помогаю со студенческими работами здесь

Не получается execute immediate
Есть функция function(:params). Имя этой функции хранится в таблице. После её выборки из таблицы делаю : заменяю в строке функции...

execute immediate и ошибка ORA-01031: привилегий недостаточно
Добрый день! Ситуация следующая: NewPackage STRING(10000); *** Куда записываю текст пакета: create or...

Как изменить CursorType возвращаемый ADODB.Command.Execute()
Есть такой код, как можно изменить CursorType,LockType на (adOpenKeyset,adLockOptimistic) ...

Dbms_parallel execute: количество потоков постепенно снижается до одного
Есть процедур proc1 вызываемая в pl/sql блоке begin proc1(:start_id, :end_id); end; Проблема заключаеться в том что вот это всё...

ADO: command Execute, значение счетчика после всавки новой записи
Как можно узнать значение счетчика после вставки новой записи не запрашивая БД ('SELECT FROM...') после выполнения команды ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru