plsql:创建函数报错!错误信息:ORA-01031: 权限不足
我要在sql*plus 里面创建一个函数 :
CREATE OR REPLACE FUNCTION AverageGrade (
p_Department IN VARCHAR2,
p_Course IN NUMBER) RETURN VARCHAR2 AS
v_AverageGrade VARCHAR2(1);
v_NumericGrade NUMBER;
v_NumberStudents NUMBER;
CURSOR c_Grades IS
SELECT grade
FROM registered_students
WHERE department = p_Department
AND course = p_Course;
BEGIN
Debug.Reset;
Debug.Debug('p_Department', p_Department);
Debug.Debug('p_Course', p_Course);
SELECT COUNT(*)
INTO v_NumberStudents
FROM registered_students
WHERE department = p_Department
AND course = p_Course;
Debug.Debug('After select, v_NumberStudents', v_NumberStudents);
IF v_NumberStudents = 0 THEN
RAISE_APPLICATION_ERROR(-20001, 'No students registered for ' ||
p_Department || ' ' || p_Course);
END IF;
SELECT AVG(DECODE(grade, 'A', 5,
'B', 4,
'C', 3,
'D', 2,
'E', 1))
INTO v_NumericGrade
FROM registered_students
WHERE department = p_Department
AND course = p_Course;
SELECT DECODE(ROUND(v_NumericGrade), 5, 'A',
4, 'B',
3, 'C',
2, 'D',
1, 'E')
INTO v_AverageGrade
FROM dual;
RETURN v_AverageGrade;
END AverageGrade;
执行报错:ORA-01031: 权限不足
我登录sql*plus 使用的登录名称和口令都是我自己建的库的名称和口令。
建库语句如下:
CREATE TABLESPACE PLSQL_EXEMPLE DATAFILE 'PLSQL_EXEMPLE.ora' SIZE 10M;
CREATE USER "PLSQL" IDENTIFIED BY "TEST" DEFAULT TABLESPACE "PLSQL_EXEMPLE" TEMPORARY TABLESPACE "TEMPORARY_DATA" PROFILE DEFAULT QUOTA UNLIMITED ON "PLSQL_EXEMPLE" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "PLSQL";
ALTER USER "PLSQL" DEFAULT ROLE ALL;
请教是何问题?该如何解决?