나는 다음과 같은 속성을 가진 테이블을 만들었습니다. 여기서는 TOTALAMOUNT
열 값이 PAID_TOVEN
열 값에서 뺀 것입니다. 그러나 다음에 TOTALAMOUNT
값을 선택하면 업데이트 된 값이 표시되지 않습니다. 아래 보고서에서 볼 수 있듯이 이전 값이 나에게 표시됩니다. 보고서의업데이트 열
검색어 :
select "VEN_ACCOUNTID",
"VEN_REGNO" ,
"VEN_TXDATE" ,
"VEN_INVOICE_REFNO" as ,
"TOTALAMOUNT" as ,
"PAID_TOVEN" as ,
TOTALAMOUNT-PAID_TOVEN as "Balance"
from "VENDORACCOUNT"
내가 두 번째 항목을 할 때마다 나에게 대신 1800
대신 2800
및 4550
즉, 감산 또는 업데이트 된 값을 표시해야합니다 위의 보고서에서 각각 9550
입니다. 그래서 다음 번에 금액을 1800
과 4550
에서 뺄 수 있습니다.
나는이 트리거
create or replace trigger "VENDORACCOUNT_T2"
BEFORE
insert or update or delete on "VENDORACCOUNT"
for each row
begin
DECLARE new_balance INT;
DECLARE new_total INT;
DECLARE new_paid INT;
SELECT balance INTO old_balance,
total INTO old_total,
PAID_TOVEN INTO new_paid
FROM vendoraccount
WHERE ven_regno = new.ven_regno
AND VEN_INVOICE_REFNO = new.VEN_INVOICE_REFNO;
UPDATE vendoraccount SET TOTALAMOUNT = old_total + old_balance - new_paid,
balance = TOTALAMOUNT - new_paid
WHERE VEN_REGNO= new.VEN_REGNO
AND VEN_INVOICE_REFNO = new.VEN_INVOICE_REFNO;
end;
을 생성하고이 오류가 무엇입니까 :
ERROR: PLS-00103: 'Encountered the symbol "DECLARE" when expecting one of the following: begin function pragma procedure subtype type current curs'
위 쿼리에서 직접 데이터를 입력하고 있습니까? 양식에 데이터를 입력하거나 그 사실을 알릴 것입니다. 방아쇠를 당길 수도 있습니다. –
그래서 나는 당신이 내가'언급 한 부분을 읽지 않았다고 생각한다. 그래서 당신의 테이블에 기초하여 질의가 될 것이다 ... ' – Annjawn
나는 그것을 읽는다. 나는 질의를 이해하지만 나는 두 번째 부분을 자세히 이해하지 못한다. .. 내가 그것을 사용하거나 그것을 이해해야합니다 ..? –