我在这个功能上有错误。 我不知道为什么它不起作用。
你能帮我吗?
CREATE OR REPLACE FUNCTION EMPNAM(empno in number)
RETURN VARCHAR2 IS
DECLARE nam VARCHAR2(40);
BEGIN
SELECT BEZEICHNUNG
INTO nam
FROM PROJ_PROJEKT
WHERE PROJEKTID = empno;
RETURN nam;
END EMPNAM;
以下是错误消息:
ERROR: Error at line 7:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
( begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
5. select BEZEICHNUNG into nam from PROJ_PROJEKT where PROJEKTID=empno;
6. return nam;
7. END EMPNAM;
答案 0 :(得分:12)
我认为您不需要DECLARE
关键字。 syntax是:
create or replace function foo
return return-type
is
(vars)
begin
(code)
end foo;
答案 1 :(得分:1)
您需要删除DECLARE
关键字
例如:
CREATE OR REPLACE FUNCTION patient_func
RETURN VARCHAR2
IS
patient_name VARCHAR(20);
BEGIN
SELECT first_name
INTO patient_name
FROM patient_tbl
WHERE patientID = 123;
RETURN patient_name;
END patient_func;
答案 2 :(得分:0)
声明不得在您的代码中使用
SELECT BEZEICHNUNG
INTO nam
FROM PROJ_PROJEKT
WHERE PROJEKTID = empno;
在上面的陈述中什么是“BEZEICHNUNG”......如果它是一个名字,它不能直接转移到nam 列名可以移动到标识符中......上面的代码必须如下所示
select lastname into nam
from proj_projekt
where projektid=empno;
此处“lastname”是列名称,它被移动到标识符“name”
中