powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Получить номер из БД Oracle
4 сообщений из 4, страница 1 из 1
Получить номер из БД Oracle
    #33895011
Scorpio_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день мастера. Подскажите такую вещь.
Произвожу запись в табицу, тригером получаю порядковый номер при записи. Как мне в момент записи получить этот номер в программе., он мне необходим для протоколирования действий., чтобы знать где, и что он вносил, данные вношу по пинципу (ФИО (вношу из переменной) + № введенной карточки (которую только ввели)), это одно поле типа VARCHAR2(60).
Отдельно создавать поля не могу, довольствуюсь тем что есть.
...
Рейтинг: 0 / 0
Получить номер из БД Oracle
    #33895020
Scorpio_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Номер получаю из такого тригера:

автор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;
...
Рейтинг: 0 / 0
Получить номер из БД Oracle
    #33901070
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, Оракловый форум и поближе к теме.
В триггере используешь .nextval , хочешь его узнать, чтоб потом ловить новую строку...?
Во первых - версия Оракла? Если >= 9i, то есть Returning, на Ора-форуме помогут чем-нибудь, сам не пользовался, или почитай доку.
Если хочешь делать так как описал - лучше
сначала получить .nextval ,
сделать Insert
Первичный ключ есть - у тебя уже есть .nextval .
-------------------------
Только непонятно - зачем знать этот номер?
В триггере записываешь
Код: plaintext
INSERT INTO "user"."LI_M"(LI_NI,MIG_NI) VALUES (nLi,:NEW.NI);
я так понимаю - это и есть какое-то журналирование?
...
Рейтинг: 0 / 0
Получить номер из БД Oracle
    #33901296
semenar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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);
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Получить номер из БД Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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