|
|
|
Получить номер из БД Oracle
|
|||
|---|---|---|---|
|
#18+
Добрый день мастера. Подскажите такую вещь. Произвожу запись в табицу, тригером получаю порядковый номер при записи. Как мне в момент записи получить этот номер в программе., он мне необходим для протоколирования действий., чтобы знать где, и что он вносил, данные вношу по пинципу (ФИО (вношу из переменной) + № введенной карточки (которую только ввели)), это одно поле типа VARCHAR2(60). Отдельно создавать поля не могу, довольствуюсь тем что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:37 |
|
||
|
Получить номер из БД 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:39 |
|
||
|
Получить номер из БД Oracle
|
|||
|---|---|---|---|
|
#18+
Может быть, Оракловый форум и поближе к теме. В триггере используешь .nextval , хочешь его узнать, чтоб потом ловить новую строку...? Во первых - версия Оракла? Если >= 9i, то есть Returning, на Ора-форуме помогут чем-нибудь, сам не пользовался, или почитай доку. Если хочешь делать так как описал - лучше сначала получить .nextval , сделать Insert Первичный ключ есть - у тебя уже есть .nextval . ------------------------- Только непонятно - зачем знать этот номер? В триггере записываешь Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2006, 00:39 |
|
||
|
Получить номер из БД 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); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2006, 14:30 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33901070&tid=1591054]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 494ms |

| 0 / 0 |
