powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rowid строк вызвавших exception
12 сообщений из 12, страница 1 из 1
rowid строк вызвавших exception
    #39279428
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток! Подскажите, пожалуйста, как получить rowid строк, при обработке которых вылетает exception. Я создал темповую таблицу и хочу в нее вставлять rowid этих самых строк. Делаю так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare
my_exc exception
pragma exception_init(my_exc, -31011)
begin 
select xmltype(t.data, 871)
from ttt  t where  t.doc_format_id = 6 and t.culture_code = 'ru';
exception 
  when others then 
    insert into t_t(f_rowid) values --как тут дальше не пойму



Как дальше не могу сообразить, интернеты облазил, примеры не нашел.
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279439
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
israelshamir,

либо ткните носом, что почитать, чтобы не делать это как я сейчас - через жопу
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279444
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
israelshamirчерез жопуНадо просто включить мозг.
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279464
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Врубился
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279469
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы продать что-то ненужное, надо сначала купить что-то ненужное...
israelshamir
Код: plsql
1.
select ROWID rid, xmltype(t.data, 871)
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279563
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
israelshamirElic,

Врубилсяпростите, а во что именно вы врубились?
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279578
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--Eugene--,

пришла идея наваять курсор. Правда, теперь не понимаю, где ошибка

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
DECLARE
v_rowid rowid;
my_exc exception;
pragma exception_init(my_exc, -31011);
CURSOR cur 
IS 
select *
from  doc_template  t 
where t.doc_format_id = 6 
      and t.culture_code = 'ru';

BEGIN

Open cur;

LOOP

FETCH cur into v_row;

EXIT WHEN cur%NOTFOUND;

select rowid rid, xmltype(v_row.data, 871) xmldata from dual;
EXCEPTION
  when my_exc then
    insert into temp_t(failed_rowid) values(v_row.rowid);

END LOOP;

CLOSE cur;
END;
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279583
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
israelshamir,

Код: plaintext
select rowid rid, xmltype(v_row.data, 871) xmldata from dual;
- почти бред сумасшедшего
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279739
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--Eugene--,

да не, это называется - курсоры с наскока не освоишь.
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39279817
israelshamirisraelshamir,

либо ткните носом, что почитать, чтобы не делать это как я сейчас - через жопу

...возрадовался.
тыц
rowid со временем может измениться, так что не затягивай с его использованием, а лучше используй первичный ключ таблицы, если есть.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table bad_string (rowid_str rowid);

begin
for i in (select rowid from ttt  t where  t.doc_format_id = 6 and t.culture_code = 'ru') loop
 begin
   select xmltype(t.data, 871) 
   from temptable  t where t.doc_format_id = 6 and t.culture_code = 'ru'
   and rowid = i.rowid
 exception
 when others then
   insert into bad_string values(i.rowid);
 end;
end loop;
end;
/
select * from bad_string;
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39280042
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рано я в пятницу...,

огромнейшее спасибо, протестил, пашет как надо!
...
Рейтинг: 0 / 0
rowid строк вызвавших exception
    #39280047
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
israelshamir,

теперь основательно изучу курсоры, xmltype и xpath.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rowid строк вызвавших exception
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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