【发布时间】:2017-03-04 04:06:25
【问题描述】:
- 错误(25,1):PLS-00103:遇到符号“EXEC”
- 错误(30,1):PLS-00103:在预期以下情况之一时遇到符号“SELECT”:开始函数杂注过程子类型当前游标删除之前存在符号“开始”替换“选择”以继续。
- 错误(30,22):PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:(开始案例声明结束异常退出 goto if loop mod null pragma raise return select update while with
DROP TABLE 学生; 提交;
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;
【问题讨论】:
-
哇。您的错误消息表明这是 Oracle,但您使用 mysql 和 sql-server 标记了您的问题。