0

可能重复:
关于 PL/SQL FUNCTIONS
plsql 函数的作业

功能:

  1. 函数Display_Employee_Name_In_Uppercase接受表中Employee_IDEmpoyees并以大写形式返回员工的名字和姓氏。
  2. Employee_IDs编写一个小型 PL/SQL 程序来显示107、200 和 205员工的姓名 。

这就是我所做的我不知道如何完成它可以帮助吗?

CREATE OR REPLACE FUNCTION disp (emp_id in  varchar20) return emp_name
select into emp_name 
fname||lname 
from employees 
where employee_id=emp_id
END disp ;
4

2 回答 2

1

像这样的东西...

CREATE OR REPLACE 
FUNCTION Fn_Display(p_empId IN VARCHAR2)
RETURN VARCHAR2

IS

empName VARCHAR2(100);    

BEGIN

 BEGIN
  SELECT UPPER(first_name || ' ' || last_name)
  INTO  empName
  FROM Employees
  WHERE employee_id = p_empId; 
 EXCEPTION 
    WHEN NO_DATA_FOUND THEN
       RAISE NO_DATA_FOUND                
 END;


 RETURN empName;

END Fn_Display;

你可以在任何你想要的地方调用这个函数。这是一个样本...

  DECLARE

    empId VARCHAR2(100);
    empName VARCHAR2(100);

  BEGIN

    empId := &ENTER_EMPLOYEE_ID;
    empName := Fn_Display(empId);

    DBMS_OUTPUT.PUT_LINE('Employee Name: '||empName);

  END;
于 2012-05-09T08:49:19.707 回答
0

你可以试试这段代码,也许这个对你有用:

CREATE OR REPLACE FUNCTION disp (emp_id in  varchar2) return varchar2 IS
emp_name varchar2(256);
BEGIN
  select UPPER(fname || ' ' || lname) 
  into emp_name  
  from employees 
  where employee_id = emp_id;
  return emp_name;
END disp;
于 2012-05-09T08:49:59.867 回答