0

重複の可能性:
PL/SQL関数の宿題
plsql関数

働き:

  1. これに対する関数は、テーブルからDisplay_Employee_Name_In_Uppercaseを受け入れ、従業員の名前と名前を大文字で返します。Employee_IDEmpoyees
  2. 小さなPL/SQLプログラムを作成して、 Employee_IDs107、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 に答える