1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Сообщение для тригера в Pl/sql

Тема в разделе "Базы данных и администрирование", создана пользователем Andrian, 5 ноя 2008.

  1. Andrian

    Andrian Гость

    Репутация:
    0
    мне нужна какаят-о функция (в моем случае МSG но она использует
    RAISE_APPLICATION_ERROR(AError, AText)
    ) которая при реагировании тригера на ввод неправильных данных вывела в моем приложение (приложение написано на C++ Builder) которая использует Oracle 10 g, сообщение о недостоверности водимых данных и рарешала бы дальше работать и не блокировала эту запись как делает RAISE_APPLICATION_ERROR.

    Тригер имеет вид:

    CREATE OR REPLACE TRIGGER UN4.TRiG_Ver_Cant instead OF

    INSERT OR UPDATE ON UN4.VMDB_CMN202D FOR EACH ROW
    DECLARE CA NUMBER;

    eroare EXCEPTION;
    BEGIN


    ca:=Un$sold.CALC_SOLD(sysdate,

    2161,

    ' ',

    :new.ctsc,

    :new.ctdep,

    ' ',

    ' ',

    ' ',

    ' ',

    ' ',

    158159);



    IF INSERTING THEN



    if :new.ctsc not in(17688) then

    if :)new.cant>ca) then
    begin



    raise eroare;



    end;

    end if;

    end if;






    ELSIF UPDATING THEN



    if :new.ctsc not in(17688) then

    if :)new.cant>ca) then
    begin


    raise eroare;


    end;

    end if;

    end if;



    END IF;

    EXCEPTION

    WHEN eroare THEN msg('Cantitatea produsului '||:new.ctsc||' depaseste resturile la depozitul '||:new.ctdep||' de: '||ca);



    end;
    /


    ???
     
Загрузка...

Поделиться этой страницей