2016-10-21 6 views
0
  • 오류 (25,1) 해결하는 방법을 이해하지 않습니다 : PLS-00103를 :가 발생 상징 "EXEC"
  • 오류 (30.1) : PLS-00103을 : 조우 다음 중 하나가 예상 될 때 "SELECT"기호를 입력하십시오. begin 함수 pragma 프로 시저 부속 유형 현재 커서 delete exists before "SELECT"대신 "begin"기호를 사용하여 계속 진행하십시오.
  • PLS-00103 : 다음 중 하나가 예상 될 때 심볼 "end-of-file"이 발생했습니다. (goto에 대해 end case declare end 예외 종료 루프 모드 null pragma raise return select update while <와 < 가까운 현재 삭제 가져 잠금 삽입 개방 롤백 세이브 포인트 세트 FORALL 파이프 퍼지에게

DROP 표 학생을 병합 커밋 SQL 실행 계속해서 가 COMMIT;나는 이러한 오류를 얻고있다 및

CREATE TABLE Student(
    studentNumber INT NOT NULL, 
    studentName VARCHAR2(20) NOT NUll, 
    gender CHAR(1) NOT NULL, 
    highSchoolAvg INT NOT NULL, 
    scholarship INT DEFAULT 0, 
    CONSTRAINT "student_gender" CHECK (gender IN ('M', 'F')), 
    CONSTRAINT "student_highSchoolAvg" CHECK (highSchoolAvg BETWEEN 0 AND  100) 
); 

CREATE OR REPLACE PROCEDURE AcceptStudent(
    studentNumberPR INT, 
    studentNamePR VARCHAR2, 
    genderPR CHAR, 
    highSchoolAvgPR INT) 
IS 
    ScholarshipPr INT; 
BEGIN 
    ScholarshipPR := 0; 

    IF highSchoolAvgPR >= 90 and highSchoolAvgPR <=100 THEN 
     ScholarshipPR := 1500; 

    ELSIF highSchoolAvgPR >= 85 and highSchoolAvgPR < 90 THEN 
     ScholarshipPR := 1000; 

    ELSE 
     raise_application_error(-20201, 'Invalid highSchool average'); 
    END IF; 

    INSERT INTO Student (studentNumber, studentName, gender,  highSchoolAvg, scholarship) 
     VALUES (studentNumberPR, studentNamePR, genderPR,  highSchoolAvgPR, ScholarshipPr); 
END; 

exec ACCEPTSTUDENT (1, 'Ashley', 'F', 87); 
exec ACCEPTSTUDENT (2, 'Will', 'M', 76); 
exec ACCEPTSTUDENT (3, 'David', 'M', 94); 
--Holly should be the only error-- 
exec ACCEPTSTUDENT (4, 'Holly', 'F', 103); 
select * from student; 
+1

와우. 오류 메시지는 이것이 Oracle이라는 것을 나타내지 만 mysql과 sql-server로 질문을 태그했습니다. –

+1

[Oracle 저장 프로 시저] (http://stackoverflow.com/questions/1679733/oracle-stored-procedure)의 가능한 복제본 –

답변

0

당신이 스크립트에서 모든 것을 실행하려고 슬래시가 누락되었습니다절차 후 별도의 줄에그 자체를 붙이십시오.

관련 문제