AMcoder - javascript, python, java, html, php, sql

Պարզ oracle Trigger-ն աշխատում է, բայց ինձ սխալներ է տալիս

Ես ունեմ այս պարզ ձգան, այն աշխատում է, բայց ինձ մի քանի սխալ է տալիս: շարահյուսությունը ճիշտ է թվում:

Սա իմ կոդը.

create or replace 
TRIGGER max_raise
BEFORE UPDATE ON empcopy
FOR EACH ROW
DECLARE
v_max NUMBER := 3000;
BEGIN
 IF :new.sal > v_max THEN
  raise_application_error(-20002, 'Cannot exceed max value of ' || v_max);
 END IF;
END;

Եվ սա իմ սխալներն են.

ՀԱՅՏԱՐԱՐԵԼ

*

ՍԽԱԼ 1-ին տողում՝

ORA-20002. Չի կարող գերազանցել 3000 առավելագույն արժեքը

ORA-06512՝ «SYSTEM.MAX_RAISE», տող 5

ORA-04088. սխալ «SYSTEM.MAX_RAISE» գործարկման ժամանակ

ORA-06512՝ 11 տողում

Սա pl/sql կոդը է, որը ես օգտագործում եմ համատեղ:

DECLARE
  v_raise   NUMBER;
  CURSOR cur1 IS
   SELECT a.deptno, a.sal, a.empno, a.ename 
   FROM empcopy a;

BEGIN
  FOR emp IN cur1 LOOP  

    v_raise := external_raise(emp.deptno, emp.sal);

    DBMS_OUTPUT.PUT_LINE('The Employee: ' || emp.ename || ' new salary: ' 
    || v_raise || ' the previous one was: ' || emp.sal);

    UPDATE empcopy SET sal = v_raise WHERE empno = emp.empno;
      END LOOP;  
END;
12.12.2013

  • Ես plsql-ի մասնագետ չեմ, բայց չէ՞ որ ձեր կոդը սխալ է թույլ տալիս: 12.12.2013
  • Թույլ տվեք թարմացնել այն pl/sql կոդով, որը ես օգտագործում եմ: 12.12.2013
  • Բացառություն է, որ բարձրացվում է: Բռնեք այն և տպեք հաղորդագրություն զանգերի բլոկում: Կամ թարմացման հայտարարությունը փաթեթավորեք begin exception բլոկով, եթե ցանկանում եք շարունակել այլ գրառումների միջոցով: 12.12.2013
  • Այո, դուք ճիշտ էիք, երբ ես բռնեցի բացառությունը, այն ստացվեց: 12.12.2013
  • Իսկապե՞ս ուզում եք ստուգել, ​​որ նոր աշխատավարձը 3000-ից բարձր չէ. կամ բարձրացման չափը (այսինքն :new.sal - :old.sal) չէ: Բացի այդ, դուք իսկապես չպետք է ստեղծեք ձեր սեփական օբյեկտները SYSTEM սխեմայում, դուք պետք է ստեղծեք նոր օգտվող և կատարեք այս ամենը որպես այդ օգտվող, եթե չեք ցանկանում աղտոտել գոյություն ունեցող (HR?) սխեման: 12.12.2013

Պատասխանները:


1

Ձեր կոդի խնդիրը ոչ թե ձեր գործարկիչն է, այլ դրա հիմքում ընկած բիզնես տրամաբանությունը: Ինչպես տեսնում եմ, ձեր հարցից, ձեր ամբողջ ծածկագիրը լավ է աշխատում՝ ըստ ակնկալիքների: Այստեղ խնդիրն այն է, որ դուք չգիտեք, թե ինչ ակնկալիքներ կան:

Դա առաջադեմ աուդիտի պարզ դեպք է, որն իրականացվում է ձգանների օգտագործմամբ: Ձեր բիզնես վերլուծաբանը կամ կոդավորողը, ով աշխատել է ձեզնից առաջ այս օրենսգրքի վրա, այն է, որ աշխատողի աշխատավարձը չպետք է գերազանցի որոշակի գումարը: Նրանք ցանկանում էին համոզվել, որ ոչ ոք սխալ արժեք չի մուտքագրում նույնիսկ՝ բաց թողնելով ճակատային մասը և ուղղակիորեն հարցումներ կատարել տվյալների բազայում: Այսպիսով, այս ձգան ծրագրավորվել է:

Այն, ինչ կարող եք անել հիմա, փոփոխել ձեր ճակատային մասը՝ այս բացառությունը օգտատիրոջը ցույց տալու համար: Կամ, խոսեք ձեր բիզնես վերլուծաբանի հետ, և եթե նա կարծում է, որ ձեզ հարկավոր չէ ստիպել այս տրամաբանությունը, կարող եք պարզապես թողնել ձգանը:

12.12.2013
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..