Frm 40735 ошибка

08.11.2008, 18:10. Показов 13272. Ответов 6


Студворк — интернет-сервис помощи студентам

В oracle forms на форме у меня из списка выбирается операция и сответвено каждой операции убераются и появляются поля.Для этого я пременил тригер WHEN-LIST-CHANGED

Oracle 11 SQL
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
IF :KU_OPERACIYA.OPER='Поступление' THEN
 
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
 
ELSE
 IF :KU_OPERACIYA.OPER='Выбытие' THEN
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
 
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_true);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_true);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PRICHINA', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUM_PROD', ENABLED, PROPERTY_true);
ELSE
    IF :KU_OPERACIYA.OPER='Изменение стоимости' THEN
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_true);
 
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.IZM_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.IZM_SUM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_STOI', ENABLED, PROPERTY_true);
ELSE
    IF :KU_OPERACIYA.OPER='Внутренее перемешение' THEN
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_false);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZNOS', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_PODR', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_MOL', ENABLED, PROPERTY_true);
END IF;     
END IF; 
END IF;
END IF;

при заполнении все работает и при сохранении даные сохроняются.
Но при выполнении запроса к БД выдается ошибка

FRM-40735: POST-OUERY триггер вызвал необработанное ислючение ORA-01403
вот текст POST-OUERY

Oracle 11 SQL
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
SELECT inve_nomer,per__stoi,sum_izn
INTO :KU_OPERACIYA.invent_nom,:KU_OPERACIYA.PERSTOIM,:KU_OPERACIYA.SUMA_IZN
FROM ku_inven_kart
WHERE id_kart=:KU_OPERACIYA.id_kart;
 
SELECT naim_prod
INTO :KU_OPERACIYA.PODR
FROM ku_katol_podr
WHERE Kod_podr=:KU_OPERACIYA.Kod_podrt;
 
SELECT fio
INTO :KU_OPERACIYA.MOL
FROM ku_mol
WHERE kod_mol=:KU_OPERACIYA.kod_mol;
 
 
SELECT naim_os
INTO :KU_OPERACIYA.NAIM
FROM ku_os
WHERE id_os=:KU_OPERACIYA.id_os;
 
IF :KU_OPERACIYA.OPER='Поступление' THEN
 
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
 
ELSE
 IF :KU_OPERACIYA.OPER='Выбытие' THEN
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_true);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_true);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PRICHINA', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUM_PROD', ENABLED, PROPERTY_true);
ELSE
    IF :KU_OPERACIYA.OPER='Изменение стоимости' THEN
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_true);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_true);
 
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_true);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_false);
SET_ITEM_PROPERTY('KU_OPERACIYA.SUMA_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.PERSTOIM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.IZM_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_IZN', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.IZM_SUM', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_STOI', ENABLED, PROPERTY_true);
ELSE
    IF :KU_OPERACIYA.OPER='Внутренее перемешение' THEN
set_item_property('KU_OPERACIYA.NEW_STOI', visible, property_false);
set_item_property('KU_OPERACIYA.PERSTOIM', visible, property_false);
set_item_property('KU_OPERACIYA.SUMA_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZNOS', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.PRICHINA', visible, property_false);
set_item_property('KU_OPERACIYA.SUM_PROD', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_IZN', visible, property_false);
set_item_property('KU_OPERACIYA.IZM_SUM', visible, property_false);
set_item_property('KU_OPERACIYA.NEW_PODR', visible, property_true);
set_item_property('KU_OPERACIYA.NEW_MOL', visible, property_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_PODR', ENABLED, PROPERTY_true);
SET_ITEM_PROPERTY('KU_OPERACIYA.NEW_MOL', ENABLED, PROPERTY_true);
END IF;     
END IF; 
END IF;
END IF;

Вроде все правелно ктонибуть может сказать в чем дело??????



0



I have a table trigger like below:

CREATE OR REPLACE TRIGGER PAT_BUR_DOB_TRG
 BEFORE UPDATE OF DOB
 ON PAT
 REFERENCING OLD AS OLD NEW AS NEW
 FOR EACH ROW
-- PL/SQL Block
begin
  tgln_sys_error_pkg.compare_dates(trunc(add_months(:new.dob, -12)),
                                   trunc(tgln_sys_error_pkg.GET_LIST_DATE(:old.pat_id)),
                                   tgln_sys_errnums_pkg.en_retr_waitlist_date);
end;

-------------------------------------- 

I have a package which is called by the trigger above, the code for the package is like below:

CREATE OR REPLACE PACKAGE TGLN_SYS_ERROR_PKG AS

/* To compare two dates against each other. */
PROCEDURE COMPARE_DATES
(P_DATE_LOW date
,P_DATE_HIGH date
,P_ERROR_CODE number
);

FUNCTION GET_LIST_DATE
 (P_PAT_ID number)
 RETURN DATE;

END TGLN_SYS_ERROR_PKG;
--------------------------------------   

The package body is like below:

CREATE OR REPLACE PACKAGE BODY TGLN_SYS_ERROR_PKG AS

FUNCTION GET_LIST_DATE(P_PAT_ID number) RETURN DATE IS
  v_ret_date date;
begin

  --select to_date('01-JAN-1980') into p_Date from dual; 

  select max(pwl.eff_date)
    into v_ret_date
    from pat, pat_register pr, pat_register_org_det prod, pat_wait_list pwl
   where pat.pat_id = pr.pat_id
     and pr.patr_id = prod.patr_id
     and prod.prod_id = pwl.prod_id
     and pat.pat_id = P_PAT_ID
     and rownum < 2
     AND pwl.exp_date is null;
  return nvl(v_ret_date, to_date(null));
exception
  when no_data_found then
    return to_date(null);
end GET_LIST_DATE;


PROCEDURE COMPARE_DATES
(P_DATE_LOW date
,P_DATE_HIGH date
,P_ERROR_CODE number
)
IS
begin
if nvl(p_date_low,sysdate-10000)>nvl(p_date_high,sysdate+10000) then
raise_application_error(p_error_code,null);
end if;
end compare_dates;

end TGLN_SYS_ERROR_PKG;
--------------------------------------    
CREATE OR REPLACE PACKAGE TGLN_SYS_ERRNUMS_PKG IS
en_retr_waitlist_date CONSTANT INTEGER := -20088; --Patient waitlist effective dates must not be less than or equal to patient's date of birth minus one year ( DOB - 1 year).     
END TGLN_SYS_ERRNUMS_PKG;
-------------------------------------- 

Each time when Oracle Forms update DOB data, I get error like below:

Oracle Form FRM-40735: ON-ERROR trigger raised unhandled exception ORA-06502

But, when I hard code like below:

select to_date('01-JAN-1980') into p_Date from dual; 

to instead of this paragraph code like below, form works fine.

  select max(pwl.eff_date)
    into v_ret_date
    from pat, pat_register pr, pat_register_org_det prod, pat_wait_list pwl
   where pat.pat_id = pr.pat_id
     and pr.patr_id = prod.patr_id
     and prod.prod_id = pwl.prod_id
     and pat.pat_id = P_PAT_ID
     and rownum < 2
     AND pwl.exp_date is null;

I did replace p_pat_id to a real value, it pops up a trigger error

ORA-04091: table TGLN.PAT is mutating, trigger/function may not see it 
ORA-06512: at "TGLN.TGLN_SYS_ERROR_PKG",
line 130 ORA-06512: at "TGLN.PAT_BUR_DOB_TRG",
line 26 ORA-04088: error during execution of trigger 'TGLN.PAT_BUR_DOB_TRG'
View program sources of error stack?" 

So, how to fix the bug? I can not hard code the date values

#oracle #oracle11g #oracle10g #oracleforms #oracle-fusion-middleware

#Oracle #oracle11g #oracle10g #oracleforms #oracle-fusion-промежуточное ПРОГРАММНОЕ обеспечение

Вопрос:

Я создаю триггер после ВСТАВКИ в блоке, когда получаю эту ошибку в Oracle Forms 11gR2

«FRM-40735: триггер после вставки вызвал необработанное исключение ora-01722»

Код триггера ПОСЛЕ ВСТАВКИ:

 Insert into we_group (GROUP_ID, GROUP_SIZE, NRSP_STATUS, GROUP_RECEIVED)
Select DISTINCT GROUP_ID, ('Select COUNT(*) from we_group_hof_k'), 
nrsp_status, sysdate
from we_group_hof_k;

commit_form;
  

Как решить эту проблему?

Ответ №1:

Удалить ‘, чтобы предотвратить преобразование числа в символ

  Select DISTINCT GROUP_ID, (select COUNT(*) from we_group_hof_k), 
 nrsp_status, sysdate
 from we_group_hof_k;
  

Ответ №2:

Рассмотрите возможность использования аналитической версии COUNT функции (если используемая вами версия Forms поддерживает ее; 10g этого не делает, я не могу сказать о 11g):

 INSERT INTO we_group (GROUP_ID,
                      group_size,
                      nrsp_status,
                      group_received)
   SELECT DISTINCT GROUP_ID,
                   COUNT (*) OVER (ORDER BY NULL),
                   nrsp_status,
                   SYSDATE
     FROM we_group_hof_k;
  

Ответ №3:

Очевидно ORA-01722 , что оно возникает из-за попытки вставить строку в кавычках

( 'Select COUNT(*) from we_group_hof_k' ) в числовой столбец ( GROUP_SIZE ).

Итак, прежде всего, вам нужно избавиться от этих кавычек и даже целого подвыбора, поскольку вы уже пытаетесь выбрать из той же таблицы в основном запросе, и просто подумайте о том, чтобы group by вместо этого включить предложение:

 Insert Into we_group(group_id, group_size, nrsp_status, group_received)
  Select group_id,Count(1),nrsp_status, sysdate
    From we_group_hof_k
   Group By group_id,nrsp_status;
  

Наконец, не используйте commit или commit_form внутри POST-INSERT триггера, это использование считается незаконным, ограниченным там.

This is Forms; if you meant to use the ampersand (&) like in SQL*Plus, well, you’re very wrong as Forms don’t work that way. You should create form items, let users populate their values, and then store those values into the database.

The error you got is because you’re inserting strings into some number columns; the most obvious is the PRICE — that is, most probably, a NUMBER data type column, and you’re putting &price into it, literally.

The most usual way is to use the Data Block Wizard, base the block on the BOOK table, and Forms would create everything for you — you’d just run the form, put some values into those items and commit.

The way you’re doing it now, it seems that you want to use a control block, i.e. the one that isn’t based on an underlying database object (such as a table or a view), so you have to create your own INSERT logic — I’d suggest you not to do that. But, if you insist, then the trigger would look like this:

begin
  insert into book
    values (:a, :b, :c, :d);

EXCEPTION
  when VALUE_ERROR then
    message('VALUE_ERROR exception raised');
    raise form_trigger_failure;
end;
  • reference items with the colon sign (I’d also suggest you to always reference them using the block and the item name, such as :block.item_name)
  • DBMS_OUTPUT.PUT_LINE won’t work in Forms

У меня есть триггер таблицы, как показано ниже:

CREATE OR REPLACE TRIGGER PAT_BUR_DOB_TRG
 BEFORE UPDATE OF DOB
 ON PAT
 REFERENCING OLD AS OLD NEW AS NEW
 FOR EACH ROW
-- PL/SQL Block
begin
  tgln_sys_error_pkg.compare_dates(trunc(add_months(:new.dob, -12)),
                                   trunc(tgln_sys_error_pkg.GET_LIST_DATE(:old.pat_id)),
                                   tgln_sys_errnums_pkg.en_retr_waitlist_date);
end;

-------------------------------------- 

У меня есть пакет, который вызывается триггером выше, код для пакета выглядит следующим образом:

CREATE OR REPLACE PACKAGE TGLN_SYS_ERROR_PKG AS

/* To compare two dates against each other. */
PROCEDURE COMPARE_DATES
(P_DATE_LOW date
,P_DATE_HIGH date
,P_ERROR_CODE number
);

FUNCTION GET_LIST_DATE
 (P_PAT_ID number)
 RETURN DATE;

END TGLN_SYS_ERROR_PKG;
--------------------------------------   

Тело пакета как показано ниже:

CREATE OR REPLACE PACKAGE BODY TGLN_SYS_ERROR_PKG AS

FUNCTION GET_LIST_DATE(P_PAT_ID number) RETURN DATE IS
  v_ret_date date;
begin

  --select to_date('01-JAN-1980') into p_Date from dual; 

  select max(pwl.eff_date)
    into v_ret_date
    from pat, pat_register pr, pat_register_org_det prod, pat_wait_list pwl
   where pat.pat_id = pr.pat_id
     and pr.patr_id = prod.patr_id
     and prod.prod_id = pwl.prod_id
     and pat.pat_id = P_PAT_ID
     and rownum < 2
     AND pwl.exp_date is null;
  return nvl(v_ret_date, to_date(null));
exception
  when no_data_found then
    return to_date(null);
end GET_LIST_DATE;


PROCEDURE COMPARE_DATES
(P_DATE_LOW date
,P_DATE_HIGH date
,P_ERROR_CODE number
)
IS
begin
if nvl(p_date_low,sysdate-10000)>nvl(p_date_high,sysdate+10000) then
raise_application_error(p_error_code,null);
end if;
end compare_dates;

end TGLN_SYS_ERROR_PKG;
--------------------------------------    
CREATE OR REPLACE PACKAGE TGLN_SYS_ERRNUMS_PKG IS
en_retr_waitlist_date CONSTANT INTEGER := -20088; --Patient waitlist effective dates must not be less than or equal to patient's date of birth minus one year ( DOB - 1 year).     
END TGLN_SYS_ERRNUMS_PKG;
-------------------------------------- 

Каждый раз, когда Oracle Forms обновляет данные DOB, я получаю ошибку, как показано ниже:

Oracle Form FRM-40735: триггер ON-ERROR вызвал необработанное исключение ORA-06502

Но когда я жестко кодирую, как показано ниже:

select to_date('01-JAN-1980') into p_Date from dual; 

Вместо этого кода абзаца, как показано ниже, форма работает нормально.

  select max(pwl.eff_date)
    into v_ret_date
    from pat, pat_register pr, pat_register_org_det prod, pat_wait_list pwl
   where pat.pat_id = pr.pat_id
     and pr.patr_id = prod.patr_id
     and prod.prod_id = pwl.prod_id
     and pat.pat_id = P_PAT_ID
     and rownum < 2
     AND pwl.exp_date is null;

Я заменил p_pat_id на реальное значение, выскакивает ошибка триггера

ORA-04091: table TGLN.PAT is mutating, trigger/function may not see it 
ORA-06512: at "TGLN.TGLN_SYS_ERROR_PKG",
line 130 ORA-06512: at "TGLN.PAT_BUR_DOB_TRG",
line 26 ORA-04088: error during execution of trigger 'TGLN.PAT_BUR_DOB_TRG'
View program sources of error stack?" 

Итак, как исправить ошибку? Я не могу жестко закодировать значения даты

Ошибка:

ORA-04091: имя таблицы изменяется, триггер / функция может не видеть его /

Ваша ошибка

trigger error:"ORA-04091: table TGLN.PAT is mutating

Причина:

Оператор выполнил триггер или пользовательскую функцию PL / SQL. Этот триггер / функция пытался изменить или запросить таблицу, которая в данный момент модифицируется оператором, который запустил триггер / функцию.

Ваша причина

 --you're not supposed to query a table that is currently modified 
 --In you're case its `PAT` table being updated and querying at same time
 select max(pwl.eff_date)
 into v_ret_date
 from pat,  --here you are querying your PAT table,while updating the same table
      pat_register pr, pat_register_org_det prod, pat_wait_list pwl
  where pat.pat_id = pr.pat_id
   and pr.patr_id = prod.patr_id
   and prod.prod_id = pwl.prod_id
   and pat.pat_id = P_PAT_ID
   and rownum < 2
   AND pwl.exp_date is null;

Действие:

Варианты устранения этой ошибки Oracle: Перепишите триггер / функцию, чтобы она не пыталась modify/query рассматриваемую таблицу PAT.

Ссылка

  • Ошибка ORA-04091

  • ORA-04091: table [blah] мутирует, триггер / функция могут его не видеть


1

Community
23 Май 2017 в 15:04

Понравилась статья? Поделить с друзьями:
  • Frigate выдает ошибку
  • Friday the 13th the game ошибка подключения
  • Friamat prime eco ошибка 34
  • Frenic mega ошибки
  • Frenic lift ошибка oc3