※新增類別
CREATE OR REPLACE TYPE v_emp IS OBJECT( v_empno NUMBER(4), v_ename VARCHAR2(10), v_job VARCHAR2(9), v_mgr NUMBER(4), v_hiredate DATE, v_sal NUMBER(7,2), v_comm NUMBER(7,2), v_deptno NUMBER(2), MEMBER FUNCTION to_string RETURN VARCHAR2 ) NOT FINAL;
※屬性的類型和順序必需和EMP表的類型和順序一模一樣
※BODY
CREATE OR REPLACE TYPE BODY v_emp IS MEMBER FUNCTION to_string RETURN VARCHAR2 IS BEGIN RETURN SELF.v_empno || ':' || SELF.v_ename; END; END;
※隨便寫一個測試
※物件view語法
CREATE OR REPLACE VIEW view_test OF v_emp WITH OBJECT IDENTIFIER(v_empno) AS SELECT * FROM emp;
※如果權限不夠要用有權限的登入,下「GRANT CREATE VIEW TO 使用者;」
※測試
DECLARE v v_emp; BEGIN SELECT VALUE(vt) INTO v FROM view_test vt WHERE v_empno=7499; DBMS_OUTPUT.PUT_LINE(v.to_string); END;
沒有留言:
張貼留言