Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROWIDTOCHAR / 13 сообщений из 13, страница 1 из 1
04.12.2017, 12:02
    #39563585
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
Добрый день!

При выполнении запроса, необходимо сохранить в таблицу логов идентификатор строки. Но так как ID у опрашиваемой таблицы нет, использую rowid. Однако rowid никак не хочет преобразовываться в текст )) Помогите, пожалуйста, "уломать" его для помещения в лог.

Код: plsql
1.
2.
3.
4.
5.
6.
declare
    v_chr varchar2(100);
begin
    select rowidtochar(rowid) into v_chr, 1 from dual;
    dbms_output.put_line(v_chr);
end;
...
Рейтинг: 0 / 0
04.12.2017, 12:15
    #39563598
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
Все, спасибо, разобрался. Извините за беспокойство )))
...
Рейтинг: 0 / 0
04.12.2017, 12:54
    #39563625
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSS, не лучшая идея.
Rowid - штука не постоянная. Alter table move, экспорт/импорт, пересоздание таблицы - тому пример. Рискуете :)
...
Рейтинг: 0 / 0
04.12.2017, 14:58
    #39563762
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
шК0ДЕРROWIDSS, не лучшая идея.
Rowid - штука не постоянная. Alter table move, экспорт/импорт, пересоздание таблицы - тому пример. Рискуете :)

А есть еще какие - то варианты? Я не нашел другого способа зафиксировать конкретную строку (((
...
Рейтинг: 0 / 0
04.12.2017, 15:06
    #39563772
а оно надо?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSSконкретную строкукто с этой строкой работает, спроси как идентифицирует.
...
Рейтинг: 0 / 0
04.12.2017, 15:35
    #39563807
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
а оно надо?ROWIDSSконкретную строкукто с этой строкой работает, спроси как идентифицирует.

Ну вообще - то надо )) Можно, конечно, по конкретным полям как по составному ключу, но это сложнее. Период проверки данных маленький, думаю не успеют ключи по rowid сбиться. Как я понимаю вариант только через виртуальный составной ключ и по rowid. Больше у Оракл механизмов идентификации строк никаких же нет?
...
Рейтинг: 0 / 0
04.12.2017, 15:44
    #39563827
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSS,
кто с этой строкой работает, спроси как идентифицирует.
имелось в виду, что кто-то в таблице данные меняет (для того и логирование создается). А эти самые изменения производятся по конкретному условию/признаку. Что это за признак?
...
Рейтинг: 0 / 0
04.12.2017, 15:46
    #39563829
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
шК0ДЕРROWIDSS,
кто с этой строкой работает, спроси как идентифицирует.
имелось в виду, что кто-то в таблице данные меняет (для того и логирование создается). А эти самые изменения производятся по конкретному условию/признаку. Что это за признак?

Данные не меняются - только добавляются новые строки. В этом же случае rowid не собьется с верного пути?
...
Рейтинг: 0 / 0
04.12.2017, 16:12
    #39563856
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSS,

Если вы уверены, что данные в таблице не будут удаляться, изменяться (в полях входящих в ключ секционирования, если таковой имеется), либо сама таблица не будет перемещаться(alter table move) или сжиматься(alter table shrink), то можно использовать
Кстати, при восстановлении из бекапа rowid`ы так же могут меняться...
Не проще ли завести ключ?
...
Рейтинг: 0 / 0
04.12.2017, 16:20
    #39563869
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
шК0ДЕРROWIDSS,

Если вы уверены, что данные в таблице не будут удаляться, изменяться (в полях входящих в ключ секционирования, если таковой имеется), либо сама таблица не будет перемещаться(alter table move) или сжиматься(alter table shrink), то можно использовать
Кстати, при восстановлении из бекапа rowid`ы так же могут меняться...
Не проще ли завести ключ?

Да, по уму надо бы. Но сейчас вряд ли кто-то будет вносить изменения в структуру ))) Ну, чтож, спасибо всем за помощь. Будем использовать то, что есть. Еще раз - спасибо )))
...
Рейтинг: 0 / 0
04.12.2017, 16:24
    #39563872
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSS,

лучше сделать сейчас правильно, чем потом спотыкаться о костыли))
...
Рейтинг: 0 / 0
04.12.2017, 17:15
    #39563921
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
ROWIDSSДобрый день!

При выполнении запроса, необходимо сохранить в таблицу логов идентификатор строки.только id или всю строку?
...
Рейтинг: 0 / 0
05.12.2017, 09:18
    #39564146
ROWIDSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ROWIDTOCHAR
andreymxROWIDSSДобрый день!

При выполнении запроса, необходимо сохранить в таблицу логов идентификатор строки.только id или всю строку?

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


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