powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнение оператора DML (select, insert, update, delete)
9 сообщений из 9, страница 1 из 1
Выполнение оператора DML (select, insert, update, delete)
    #32110744
Mighty Mamont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, можно ли каким-либо способом определить вернул ли SELECT null или заполненную строку? И можно ли как-то сделать примерно следующее:
if insert = true then
commit;
else
...
end if;
т.е. если все выполнилось без ошибок - то commit, а иначе др. действия???
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110758
Mighty Mamont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НУ ЧТО? НИКТО СОВСЕМ НИЧЕГО НЕ ПОСОВЕТУЕТ???
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110761
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
begin
...
insert into ... (... ) select ... ;
if sql%rowcount>0 then
commit;
else
..;
end if;
...
end;
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110765
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несовсе понятен вопрос.
Тебе не это ужно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
col1_v my_tab.col1%TYPE;
begin
select col1 into col1_v from my_tab where col2= 2 ;

if col1_v is null then 
    --some code
 
else 
   --some code
 
end if; 
end;

А насчет успешной транзакции, если она успешна то все ок, иначе получаем сообщение об ошибке
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110826
Mighty Mamont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос подробнее:
перед insert надо провести проверку насчет того, не пытается ли пользователь добавить дублированную запись!
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110828
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasno, ty pishesh::
begin
Insert Into ....
Values....
Exception
when DUP_VAL_ON_INDEX
Then
Begin
........
End;
end;
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110829
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сформулируй задачу, что ты хочешь? Проверить да дубликат можно как минимум 2-мя способами:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
begin
  update my_table set ... where id = :id;
  if sql%rowcout =  0  then
    insert into ...
  end if; 
end;
/


При наличии immediate-ограничения уникальности:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
begin
  insert into ...
exception 
  when dup_val_on_index then
    update my_table set ... where id = :id;
end;
/


В 9i появилось выражение MERGE, это уже 3-й способ:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_915a.htm
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110836
Mighty Mamont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению по данным строкам нет индексов.
...
Рейтинг: 0 / 0
Выполнение оператора DML (select, insert, update, delete)
    #32110840
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумай, а не стоит ли их постоить. Если нет- воспользуйся 1-м вариантом. Если есть 9i- попробуй MERGE.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнение оператора DML (select, insert, update, delete)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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