DECLARE
  TYPE staff IS TABLE OF employee;  staffer   employee;//这里是啥意思。  FUNCTION new_hires(hiredate DATE)
    RETURN staff IS
  BEGIN
    ...
  END;
BEGIN//怎么又有个begin
  staffer    := new_hires('10-NOV-98')(5);
  ...
END; 
-----------------------
请问1 staffer   employee;是啥意思呀?
怎么会有2个 begin呀、

解决方案 »

  1.   

    请问1 staffer employee;是啥意思呀?staffer是自定义类型employee是变量名
      

  2.   

    怎么会有2个 begin呀、
    一个begin是函数体的begin,第二个begin是pl程序块的begin 
      

  3.   

    相当于java中的对象和实例的关系
      

  4.   


    DECLARE
      TYPE staff IS TABLE OF employee;
      --employee是一个自定义类型,
      --查一下定义select * from user_source t where t.name=upper('employee'); --在声明部分声明一个函数
      FUNCTION new_hires(hiredate DATE)
      RETURN staff IS
      BEGIN
      ...
      END;
    --还可以声明其它变量等
      
    BEGIN//怎么又有个 begin
      staffer := new_hires('10-NOV-98')(5);
      ...
    END;