Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 := vs. select a into b from dual  [new]
Cickis
Member

Откуда:
Сообщений: 29
При миграции кода процедур с Т-SQL на PL/SQL операцию присваивания
select @param1=5
можно интерпретировать как
на пример
param1:=5; либо select 5 into param1 from dual;
Oracle Migration Workbench не используем, в силу недостаточной функциональности и, поэтому, пишем свой мигратор.
Не знаю по каким причинам, но программерам удобнее использовать вторую конструкцию с select.
Вопрос?
Какая может быть разница по 1/2 варианта по критериям произв-ть.открытые курсоры и т.д. или только внешний вид.
Я как понимаю контексты sql и pl/sql будут переключаться, но на сколько это весомо?
Прошу прощения, если что то не так формулирую !
18 июн 08, 11:37    [5814014]     Ответить | Цитировать Сообщить модератору
 Re: := vs. select a into b from dual  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
Предполагая, что это присваивание значения локальной переменной
выполняется в программном блоке, я бы предпочел в Pl/SQL использовать вариант
param1:=5;
18 июн 08, 12:07    [5814314]     Ответить | Цитировать Сообщить модератору
 Re: := vs. select a into b from dual  [new]
Sergey M
Member

Откуда: г. Барнаул
Сообщений: 5462
преимуществ у param 1:=5; перед select 5 into param1 from dual; нету.
Зато есть недостатки
1) лишний курсор
2) переключение контекста
3) читать неудобно
18 июн 08, 12:16    [5814403]     Ответить | Цитировать Сообщить модератору
 Re: := vs. select a into b from dual  [new]
Cickis
Member

Откуда:
Сообщений: 29
Я тоже так считаю.
И по тем же причинам, но не знаю как грамотно объяснить основываясь на документации(
18 июн 08, 12:19    [5814433]     Ответить | Цитировать Сообщить модератору
 Re: := vs. select a into b from dual  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Cickis

И по тем же причинам, но не знаю как грамотно объяснить основываясь на документации(


SQL> declare
  2   x int;
  3  begin
  4   for i in 1..100000 loop
  5    select 1 into x from dual;
  6   end loop;
  7  end;
  8  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:08.37
SQL> declare
  2   x int;
  3  begin
  4   for i in 1..100000 loop
  5    x := 1;
  6   end loop;
  7  end;
  8  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.07

Убедительно ? ;)
18 июн 08, 12:23    [5814466]     Ответить | Цитировать Сообщить модератору
 Re: := vs. select a into b from dual  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
Cickis
При миграции кода процедур с Т-SQL на PL/SQL
...
Oracle Migration Workbench не используем, в силу недостаточной функциональности и, поэтому, пишем свой мигратор.
...
Если процедура миграции одноразовая, то лучше 1 раз перегнать тем что есть, а дальше уже причесывать PL\SQL. IMHO Дешевле выйдет.
18 июн 08, 12:53    [5814730]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить