Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 execute immediate  [new]
mikrob212
Member

Откуда:
Сообщений: 4
Всем привет. Не давно наткнулся на execute immediate в книге Тома Кайта. Но не не могу понять для чего и зачем нужен execute immediate. Ребята объясните пожалуйста, для чего нужен execute immediate? где и как его использовать? Строго не судите, Я новичок. Заранее всем спасибо
11 ноя 12, 20:45    [13455512]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10776
Тривиальный пример:
+
begin
 for c in (
  select object_name, object_type from user_objects
  where status <> 'VALID'
 )
 loop
  begin
     if c.object_type <> 'PACKAGE BODY' then
       execute immediate 'alter ' || c.object_type || ' ' || c.object_name || ' compile';
     else
       execute immediate 'alter package ' || c.object_name || ' compile';
     end if;
  end;
 end loop;
end;;
11 ноя 12, 20:55    [13455537]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Добрый Э - Эх
Guest
mikrob212,

динамический SQL нужен тогда, когда статическим решить задачу не получается в силу непреодолимых ограничений
11 ноя 12, 21:05    [13455552]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
mikrob212
Member

Откуда:
Сообщений: 4
Basil A. Sidorov
Тривиальный пример:+
+
begin
 for c in (
  select object_name, object_type from user_objects
  where status <> 'VALID'
 )
 loop
  begin
     if c.object_type <> 'PACKAGE BODY' then
       execute immediate 'alter ' || c.object_type || ' ' || c.object_name || ' compile';
     else
       execute immediate 'alter package ' || c.object_name || ' compile';
     end if;
  end;
 end loop;
end;;




насколько Я знаю символы || это объединение.
а тут что значит?
меня путает знаки || и ' ' в execute immediate
11 ноя 12, 21:46    [13455648]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
mikrob212
Member

Откуда:
Сообщений: 4
Добрый Э - Эх
mikrob212,

динамический SQL нужен тогда, когда статическим решить задачу не получается в силу непреодолимых ограничений


можно пример?
11 ноя 12, 21:46    [13455651]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10776
mikrob212
насколько Я знаю символы || это объединение.
а тут что значит?
Что собирается строка для alter/alter package.
меня путает знаки || и ' ' в execute immediate
execute immediate принимает строку, которая будет исполнена сервером. Апострофы (одиночные кавычки) помечают то, что должно браться "как есть" и не интерпретироваться до выполнения запроса.

P.S. Вы точно уверены, что правильно выбрали область для обучения/работы?
11 ноя 12, 21:52    [13455672]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10776
Basil A. Sidorov
P.S. Вы точно уверены, что правильно выбрали область для обучения/работы?
Я, конечно, прошу пардона за выбор варианта для специальной скриповыполнялки, но различий синтаксиса от sqlplus - немного и они не там, где вы "не понимаете".
11 ноя 12, 21:58    [13455695]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
mikrob212
Member

Откуда:
Сообщений: 4
Basil A. Sidorov
mikrob212
насколько Я знаю символы || это объединение.
а тут что значит?
Что собирается строка для alter/alter package.
меня путает знаки || и ' ' в execute immediate
execute immediate принимает строку, которая будет исполнена сервером. Апострофы (одиночные кавычки) помечают то, что должно браться "как есть" и не интерпретироваться до выполнения запроса.

P.S. Вы точно уверены, что правильно выбрали область для обучения/работы?


Спасибо. Да, уверен. Просто Я сам занимаюсь и не кого мне спросить.

Я еще только начал обучению
11 ноя 12, 22:00    [13455703]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51796

mikrob212
Я еще только начал обучению

И сразу с execute immediate? Лучше бы с чего попроще: сложение, вычитание, умножение,
запросы всякие типа select...

Posted via ActualForum NNTP Server 1.5

11 ноя 12, 22:19    [13455774]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
mikrob212
Всем привет. Не давно наткнулся на execute immediate в книге Тома Кайта. Но не не могу понять для чего и зачем нужен execute immediate. Ребята объясните пожалуйста, для чего нужен execute immediate? где и как его использовать? Строго не судите, Я новичок. Заранее всем спасибо



Да ни на фиг он не нужен.
11 ноя 12, 22:27    [13455797]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
essbase.ru
Member

Откуда: http://essbase.ru/about
Сообщений: 1407
mikrob212,

начни с http://sql-ex.ru/
11 ноя 12, 22:51    [13455883]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
mikrob212
Всем привет. Не давно наткнулся на execute immediate в книге Тома Кайта. Но не не могу понять для чего и зачем нужен execute immediate. Ребята объясните пожалуйста, для чего нужен execute immediate? где и как его использовать? Строго не судите, Я новичок. Заранее всем спасибо

1. для исполнения из pl/sql таких sql-команд, которым нет аналогов в pl/sql
2. для исполнения из pl/sql процедуры таких sql-команд(или pl/sql кода), которые не известны (или не могут быть скомпилированы)
в момент компиляции самой pl/sql процедуры
11 ноя 12, 23:30    [13456045]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Serge I
Member

Откуда: Ростов-на-Дону
Сообщений: 484
mikrob212
Ребята объясните пожалуйста, для чего нужен execute immediate? где и как его использовать? Строго не судите, Я новичок. Заранее всем спасибо

Динамический SQL обычно используется тогда, когда на момент написания приложения не известны имена таблиц/столбцов в запросе, т.е. их должен задать конечный пользователь.
12 ноя 12, 09:29    [13456774]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Удивился
Guest
Serge I,
Да, исключительно в этом случае... :))
12 ноя 12, 09:47    [13456839]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Serge I
Member

Откуда: Ростов-на-Дону
Сообщений: 484
Удивился
Serge I,
Да, исключительно в этом случае... :))

В этом случае без него нельзя обойтись, а использовать можно когда угодно, что зачастую приходится наблюдать. :-)
С другой стороны, не все языки поддерживают встроенный статический SQL, а с динамическим нет проблем.
12 ноя 12, 10:21    [13457004]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
ORA__SQL
Member

Откуда: Moscow
Сообщений: 1774
Serge I
Удивился
Serge I,
Да, исключительно в этом случае... :))

В этом случае без него нельзя обойтись, а использовать можно когда угодно, что зачастую приходится наблюдать. :-)
С другой стороны, не все языки поддерживают встроенный статический SQL, а с динамическим нет проблем.
Суровые Ростовские программисты ничего не знают о структуре таблиц используют только execute immediate
12 ноя 12, 10:52    [13457186]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Кайт
Guest
mikrob212,
автор
Ребята объясните пожалуйста, для чего нужен execute immediate? где и как его использовать?

не тупи, читай.
Oracle для профессионалов
Обычно при разработке программ все используемые в них SQL-операторы явно за-
писываются в исходном коде. Такой вариант использования SQL-операторов обычно на-
зывают статический SQL. Многие полезные программы, однако, до момента запуска не
"знают", какие именно SQL-операторы будут выполняться. Именно так и появляется ди-
намический SQL — программа при запуске выполняет SQL-операторы, неизвестные во
время компиляции. Возможно, программа генерирует запросы по ходу работы на осно-
ве введенных пользователем условий; возможно, это специализированная программа заг-
рузки данных
.
12 ноя 12, 11:12    [13457325]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Serge I
Member

Откуда: Ростов-на-Дону
Сообщений: 484
ORA__SQL
Serge I
пропущено...

Суровые Ростовские программисты ничего не знают о структуре таблиц используют только execute immediate

Ну, не только. Еще execute & prepare. :-)
12 ноя 12, 11:54    [13457625]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51796

Кайт
программа при запуске выполняет SQL-операторы, неизвестные во время
компиляции.

Ты эта... Не путай серверный динамический SQL и простые запросы с клиента.

Posted via ActualForum NNTP Server 1.5

12 ноя 12, 13:11    [13458154]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Не кайт ))
Guest
Dimitry Sibiryakov,
Ещё один. Первый пост видели? Это цитата из книжки, которую автор темы изучает.
И амба, стоп, хорош. Гуглите или покупайте и тоже читайте.
12 ноя 12, 13:25    [13458300]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51796

Не кайт ))
Это цитата из книжки, которую автор темы изучает.

И что толку в таких цитатах, если кое-кто не делает разницы между "программой" и "PL/SQL"?..

Posted via ActualForum NNTP Server 1.5

12 ноя 12, 13:32    [13458362]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Не Кайт
Guest
Dimitry Sibiryakov,
офтоп уже попер.
чего умничайте? слово программа не понравилась, контекст использования этого слова? - вперед к переводчикам, или Кайту напишите, чего это, мол... программа...
Или программа для вас это софтина отсылающая
автор
SQL и простые запросы с клиента
?
Можете завести тему в программировании об использование "программа" и развести обильную дискуссию, обязательно ктонить найдется.
12 ноя 12, 13:59    [13458602]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51796

Не Кайт
слово программа не понравилась, контекст использования этого слова?

Не понравилось, что тычут цитатой, не имеющей отношения к сабжу.

Posted via ActualForum NNTP Server 1.5

12 ноя 12, 14:22    [13458850]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Не Кайт
Guest
Dimitry Sibiryakov
Не Кайт
слово программа не понравилась, контекст использования этого слова?

Не понравилось, что тычут цитатой, не имеющей отношения к сабжу.

охохонюшки )
автор
Гуглите или покупайте и тоже читайте.

жжете, собственно это цитата из введения к главе "Динамический SQL". Вам всю главу запостить?
ещё раз, читайте медленно и внимательно.
mikrob212
для чего нужен execute immediate?

только 1 предложение...
гл.16. Динамический SQL (что уже было)
Возможно, программа генерирует запросы по ходу работы
на основе введенных пользователем условий.
.
Автор топика, думаю, не обращает внимания на наши прения, и думаю понял, что нужно читать повнимательней и далее подробней описано
автор
как его использовать?
. Пожелаем ему успехов.
Задаю вопрос на который не требую ответа: умничайте? (не портите себе карму :) )
12 ноя 12, 14:39    [13459007]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51796

Не Кайт
Возможно, программа генерирует запросы по ходу работы на основе введенных
пользователем условий.

А теперь назови язык программирования, который для этого использует execute immediate.

Posted via ActualForum NNTP Server 1.5

12 ноя 12, 15:02    [13459163]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить