ORACLE的功能

问题描述 投票:0回答:1

所以我试图创建一个函数

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

但是好像解决不了。

sql oracle oracle10g sql-function
1个回答
0
投票

你很接近;一个类似于你的表的工作例子(斯科特的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>
© www.soinside.com 2019 - 2024. All rights reserved.