powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / JOINED UPDATE
10 сообщений из 35, страница 2 из 2
JOINED UPDATE
    #32103889
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денису спасибо.
Мне начинает нравиться оракл:)
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103890
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Denis Popov: откуда такие синтаксические навороты? Это в 9i?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
begin
  for i in (
    select b.object_code_4
         , b.analitic_id
    from v_metapos_saldo b
       , v_metadoc_saldo c
    where b.doc_id = c.id
      and a.obj_id = b.object_code_4
      and c.Number like 'X0-%'  
  ) loop   
  update invent_karta a set 
    a.stoim_bux_id = i.nalitic_id
  where a.obj_id = i.object_code_4  
  end loop;
end;
/
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103899
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня в 8I работает, только в первом предикате исключить and a.obj_id = b.object_code_4, думаю очепятка.
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103900
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я кажется тормознул. i - это курсорная переменная конечно-же. Но я не знал, что курсор можно прямо в самом цикле описывать. В 8.0.X - этого вроде не было.
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103917
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это еще в 7-ке было, сам подобные конструкции на 7.3.4 писал.
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103920
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда странно. Зачем тогда писать такие громоздкие выражения.
Почему бы не описать курсор отдельно.
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32103988
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не совсем понял, а какой код кажется более громоздким, с for i in (select ...) или с явным объявлением курсора? ИМХО есть задачи, для решения которых лучше подходит один из вышеописанных медотов, есть задачи, где метод безразличен. К примеру, явный феч из задекларируемого курсора никогда не возвратит exception наподобе no_data_found или dup_val_on_index, и подчас выражения select ... into ... обертывают в такие конструкции, если подобные исключения следует игнорировать, по постановке задачи. Ну а код через for - это для "ленивых", поэтому сам часто им пользуюсь:)
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32104023
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имею ввиду только это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare
 cursor my_cur is 
    select b.object_code_4
         , b.analitic_id
    from v_metapos_saldo b
       , v_metadoc_saldo c
    where b.doc_id = c.id
      and a.obj_id = b.object_code_4
      and c.Number like 'X0-%' ; 
  
begin
  for i in my_cur loop   
   update invent_karta a set a.stoim_bux_id = i.nalitic_id 
     where a.obj_id = i.object_code_4;  
  end loop;
end;
/
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32104025
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[q] Ну а код через for - это для "ленивых", поэтому сам часто им пользуюсь:)[/q]
Поэтому мне и начинает нравится оракл.
А лень это нормально, особенно для программеров, т.е. программистов :).
...
Рейтинг: 0 / 0
JOINED UPDATE
    #32104038
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд, Oracle PL/SQL более формализован и требователен, нежели Sybase или MSSQL T-SQL, с которым пришлось работать. Конкретно- Sybase 11.9.2 и 12.0. Он него осталось впечатление этакого разгильдяйства, причем в хорошем смысле: объявление переменных где вздумается, да хотя бы просто select без указания "откуда". Но это уже офтопик и тема для "Сравнения СУБД".
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / JOINED UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]