【发布时间】:2020-06-10 10:32:58
【问题描述】:
所以我试图创建一个函数
Edit: Deleted this and created a new code
我收到一个错误警告:函数创建时出现编译错误。 所以指导会很有帮助。如果您能告知如何执行它,我会很有帮助
编辑:创建了一个新代码以返回相同的错误
CREATE OR REPLACE FUNCTION EmpNoFunc(p_empno IN Employee01.EmpNo%TYPE)
RETURN VARCHAR2
IS Emp_Detail VARCHAR2(130);
BEGIN
SELECT 'E_Name-'|| Employee01.EName ||,
'Job-'|| Employee01.Job ||, 'Hired-'|| Employee01.HiredDate ||,
INTO Emp_Detail
FROM Employee01
WHERE EmpNo = p_empno;
RETURN(Emp_Detail);
END EmpNoFunc;
/
错误是 -
5/1 PL/SQL: SQL Statement ignored
5/39 PL/SQL: ORA-00936: missing expression
但似乎无法解决。
【问题讨论】:
-
您需要将该 SELECT 的结果存储在某处。而且您的函数中缺少
RETURN语句。 -
我该怎么办
RETURN -
这取决于你想要什么。你为什么要创建一个函数?它的目的是返回something。如果您不想这样做(返回 something),您可能根本不需要函数。请考虑使用存储过程。
-
@LittleFoot 你能检查一下编辑后的新代码吗
-
您将 3 列选择为 1 个变量。尝试对它应该如何工作有基本的了解。最好的起点是文档:google“oracle SELECT INTO”或docs.oracle.com/cd/B19306_01/appdev.102/b14261/…
标签: sql oracle oracle10g sql-function