
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.08.2006, 15:37
|
|||
|---|---|---|---|
|
|||
Получить номер из БД Oracle |
|||
|
#18+
Добрый день мастера. Подскажите такую вещь. Произвожу запись в табицу, тригером получаю порядковый номер при записи. Как мне в момент записи получить этот номер в программе., он мне необходим для протоколирования действий., чтобы знать где, и что он вносил, данные вношу по пинципу (ФИО (вношу из переменной) + № введенной карточки (которую только ввели)), это одно поле типа VARCHAR2(60). Отдельно создавать поля не могу, довольствуюсь тем что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2006, 15:39
|
|||
|---|---|---|---|
|
|||
Получить номер из БД Oracle |
|||
|
#18+
Номер получаю из такого тригера: авторCREATE OR REPLACE TRIGGER "LI_MIG" BEFORE INSERT ON "KART" FOR EACH ROW DECLARE nKolNi NUMBER(17); nLi NUMBER; BEGIN IF USER='user' THEN nLi:=:NEW.NI; SELECT MIG_K.nextval INTO :NEW.NI FROM dual; select sysdate into :NEW.DATE_ from dual; INSERT INTO "user"."LI_M"(LI_NI,MIG_NI) VALUES (nLi,:NEW.NI); END IF; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2006, 00:39
|
|||
|---|---|---|---|
|
|||
Получить номер из БД Oracle |
|||
|
#18+
Может быть, Оракловый форум и поближе к теме. В триггере используешь .nextval , хочешь его узнать, чтоб потом ловить новую строку...? Во первых - версия Оракла? Если >= 9i, то есть Returning, на Ора-форуме помогут чем-нибудь, сам не пользовался, или почитай доку. Если хочешь делать так как описал - лучше сначала получить .nextval , сделать Insert Первичный ключ есть - у тебя уже есть .nextval . ------------------------- Только непонятно - зачем знать этот номер? В триггере записываешь Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2006, 14:30
|
|||
|---|---|---|---|
Получить номер из БД Oracle |
|||
|
#18+
Scorpio_mdДобрый день мастера. Подскажите такую вещь. Произвожу запись в табицу, тригером получаю порядковый номер при записи. Как мне в момент записи получить этот номер в программе., он мне необходим для протоколирования действий., чтобы знать где, и что он вносил, данные вношу по пинципу (ФИО (вношу из переменной) + № введенной карточки (которую только ввели)), это одно поле типа VARCHAR2(60). Отдельно создавать поля не могу, довольствуюсь тем что есть. А зачем так сложно? Есть в Oracle встроенный механизм протоколирования работы с таблицей. Audit_trail http://www.sql.ru/forum/actualtopics.aspx?search=audit_trail&bid=3 А касаемо ФИО, может правильнее логин? Что-то типа SELECT USER into usr FROM DUAL; INSERT INTO "user"."LI_M"(usr,MIG_NI) VALUES (nLi,:NEW.NI); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1591054]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 491ms |

| 0 / 0 |
