所以我试图创建一个函数
Edit: Deleted this and created a new code
我得到一个错误的警告。函数创建时出现编译错误,所以希望得到指导。如果你能告知如何执行它,我将是有帮助的。
EDIT: 创建了一个新的代码来返回相同的错误。
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
但是好像解决不了。
你很接近;一个类似于你的表的工作例子(斯科特的EMP)。
SQL> CREATE OR REPLACE FUNCTION empnofunc (p_empno IN emp.empno%TYPE)
2 RETURN VARCHAR2
3 IS
4 emp_detail VARCHAR2 (130);
5 BEGIN
6 SELECT 'EName-'
7 || e.ename
8 || ', Job-'
9 || e.job
10 || ', Hired-'
11 || e.hiredate
12 INTO emp_detail
13 FROM emp e
14 WHERE e.empno = p_empno;
15
16 RETURN (emp_detail);
17 END empnofunc;
18 /
Function created.
SQL> SELECT empnofunc (empno) result
2 FROM emp
3 WHERE empno = 7369;
RESULT
-----------------------------------------------------------------------------
EName-SMITH, Job-CLERK, Hired-17.12.80
SQL>