Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Конвертер валют с использованием триггера. / 6 сообщений из 6, страница 1 из 1
01.11.2017, 12:04
    #39545867
AlekseyD92
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
Доброго времени суток!
Нужно написать триггер для конвертации величин и записи их в колонку.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
CREATE OR REPLACE TRIGGER B_IU_CURR_EXCHANGE BEFORE INSERT OR UPDATE ON QUESTIONNAIRE REFERENCING NEW AS new FOR EACH ROW 
DECLARE 
  vRUB VARCHAR2(20);
  vUSD VARCHAR2(20);
  vEUR VARCHAR2(20);
  iBEL NUMBER;
  iCUR_RUB NUMBER;
  iCUR_USD NUMBER;
  iCUR_EUR NUMBER;
BEGIN
  SELECT val INTO vUSD FROM KURS WHERE id = 1;
  SELECT val INTO vEUR FROM KURS WHERE ID = 2;
  SELECT VAL INTO vRUB FROM kurs WHERE id = 3;
  SELECT znach INTO iCUR_USD FROM KURS WHERE ID =1;
  SELECT znach INTO iCUR_EUR FROM KURS WHERE ID =2;
  SELECT znach INTO iCUR_RUB FROM KURS WHERE ID =3;
  BEGIN 
    IF :new.O01V = vRUB THEN
      iBEL := :new.O01S*iCUR_RUB;
    INSERT INTO QUESTIONNAIRE(O01BEL)
    VALUES iBEL;
    end IF;
    IF :new.O01V = vUSD THEN 
      iBEL := :new.O01S*iCUR_USD;
    INSERT INTO QUESTIONNAIRE(O01BEL)
    VALUES iBEL;
    END IF;
    IF :new.O01V = vEUR THEN
      iBEL := :new.O01S*iCUR_EUR;
    INSERT INTO QUESTIONNAIRE(O01BEL)
    VALUES iBEL;
    END IF;
    EXCEPTION WHEN OTHERS THEN 
     INSERT INTO QUESTIONNAIRE(O01BEL)
    VALUES :new.O01S;
  END;
END;
    
              


Ругается на инсерте на колонку с ошибкой
Код: plsql
1.
SQL11 PL/SQL: ORA-03001: unimplemented feature SQL1.sql 20 31 


Подскажите, пожалуйста, как исправить.
...
Рейтинг: 0 / 0
01.11.2017, 12:25
    #39545892
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
AlekseyD92
Код: plsql
1.
VALUES iBEL;

Список полей нужно брать в скобки.
...
Рейтинг: 0 / 0
01.11.2017, 12:27
    #39545894
AlekseyD92
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
AmKad,
Вот это провал...
Спасибо огромное!
...
Рейтинг: 0 / 0
01.11.2017, 12:36
    #39545903
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
AlekseyD92Вот это провал...Это только его начало. А совет был медвежий. Да и весь триггер - быдлокодец ещё тот.
...
Рейтинг: 0 / 0
01.11.2017, 13:02
    #39545937
AlekseyD92
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
ElicAlekseyD92Вот это провал...Это только его начало. А совет был медвежий. Да и весь триггер - быдлокодец ещё тот.
А с этого места поподробнее, пожалуйста.
Пока начинаю SQL, поэтому так.
Подскажите оптимизацию.
...
Рейтинг: 0 / 0
01.11.2017, 13:20
    #39545951
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертер валют с использованием триггера.
AlekseyD92Пока начинаю SQL,Не от туда начинаешь. Пока можешь запомнить: на твоём уровне триггеры - зло.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Конвертер валют с использованием триггера. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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