-2
4 시간 동안이 PL/SQL 코드를 디버깅하려고 시도했습니다. 나는 또한 여기에서 검색하려고했지만 너무 구체적이어서 도움이 필요하다. 여기에 내 코드가 있습니다. 실행하려고하면 두 가지 질문이 나타납니다. 두 번째 질문에 대답 한 후 오라클은 실행을 멈 춥니 다. 이 두 문제처럼단순 PL/SQL 코드가 실행되지 않습니다. 오류를 찾을 수 없습니다.
---- File PLh20.sql
-- Author: <<<NAME>>>
-------------------------------------------------------------------
SET SERVEROUTPUT ON
SET VERIFY OFF
------------------------------------
ACCEPT rateDecrement NUMBER PROMPT 'Enter the rate decrement: '
ACCEPT allowedMinRate NUMBER PROMPT 'Enter the allowed min. rate: '
DECLARE
sr boats%ROWTYPE;
CURSOR sCursor IS
SELECT B.bid, B.bname, B.color, B.rate, B.length, B.logKeeper
FROM Boats B
WHERE B.bid NOT IN (SELECT bid FROM Reservations);
BEGIN
OPEN sCursor;
LOOP
-- Fetch the qualifying rows one by one
FETCH sCursor INTO sr;
EXIT WHEN sCursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE ('+++++ old rate: '||sr.rate||' '
||sr.rate||);
sr.rate := sr.rate - &rateDecrement;
-- A nested block
DECLARE
belowAllowedMin EXCEPTION;
BEGIN
IF sr.rate < &allowedMinRate
THEN RAISE belowAllowedMin;
ELSE UPDATE Boats
SET rate = sr.rate
WHERE Boats.bid = sr.bid;
-- Print the boat new record
DBMS_OUTPUT.PUT_LINE ('+++++ new row: '||sr.bid||' '
||sr.rate||);
END IF;
EXCEPTION
WHEN belowAllowedMin THEN
DBMS_OUTPUT.PUT_LINE('+++++ Update rejected: '||
'The new rate would have been: '|| sr.rate);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('+++++ update rejected: ' ||
SQLCODE||'...'||SQLERRM);
END;
-- end of the nested block
END LOOP;
COMMIT;
CLOSE sCursor;
END;
SELECT S.sid, S.rating
FROM sailors S, reservations R, boats B
WHERE S.sid = R.sid AND
R.bid = B.bid;
UNDEFINE rateDecrement
UNDEFINE allowedMinRate
오류 및 붙여 넣기 관련 SQL은 무엇입니까? – SMA
기본 쿼리 실행 속도는 얼마나 빠릅니까? '보트에서 어디에서 선택하세요? '? 행운을 빕니다. – shellter
G0d 술에 대한 코드를 들여 쓰기 ... – Sebas