输入学校名称
找出校长CREATE OR REPLACE PROCEDURE getHeadOfSchool( inSchoolName IN VARCHAR ) IS
DECLARE
V_headOfSchool school.headOfSchool%TYPE;
BEGIN
SELECT headOfSchool INTO v_headOfSchool FROM school WHERE schoolName = inSchoolName;
DBMS_OUTPUT.PUT_LINE(‘The head of the school is ’||v_headOfSchool);
END;
/
它说我运行它时编译错误。为什么呢?
答案 0 :(得分:3)
这是DECLARE关键字。这仅适用于匿名PL / SQL块。使用存储过程,IS关键字标记声明部分的开头。
PL / SQL文档提供了语法的正式规范和大量示例。 Find out more.
您可以通过显示编译错误自己解决此问题。像PLSQL Developer,SQL Developer或TOAD这样的现代IDE会自动执行此操作。在SQL * Plus中,您可以使用show errors
命令。如果您正在使用其他客户端,则可以运行:
select * from user_errors
where name = 'GETHEADOFSCHOOL';
请注意,Oracle将其对象名称存储在CAPITALS中。所以CamelCase在源代码中表现非常好,但缺少下划线会使数据字典查找变得更加困难。