CREATE OR REPLACE TYPE vendors AS OBJECT
(
-- 声明属性
vendor_id INTEGER,
vendor_code VARCHAR2(30),
vendor_name VARCHAR2(300),
tel VARCHAR2(30),
maintain_uid INTEGER,
-- 声明方法
MEMBER PROCEDURE add_vendor(p_code IN VARCHAR2, p_name IN VARCHAR2),
MEMBER PROCEDURE update_vendor(p_id IN INTEGER),
MEMBER PROCEDURE delete_vendor(p_id IN INTEGER),
MEMBER FUNCTION get_id RETURN INTEGER,
MEMBER FUNCTION get_code RETURN VARCHAR2,
MEMBER FUNCTION get_name RETURN VARCHAR2
)
NOT FINAL;
CREATE OR REPLACE TYPE BODY vendors AS
MEMBER PROCEDURE add_vendor(p_code IN VARCHAR2, p_name IN VARCHAR2) IS
BEGIN
INSERT INTO vd_vendor
(vendor_id,
vendor_code,
vendor_name,
remark,
creator,
create_date,
editor,
edit_date)
VALUES
(s_scm.NEXTVAL,
p_code,
p_name,
'这是测试对象的数据',
SELF.maintain_uid,
SYSDATE,
SELF.maintain_uid,
SYSDATE);
COMMIT;
END;
MEMBER PROCEDURE update_vendor(p_id IN INTEGER) IS
BEGIN
UPDATE vd_vendor
SET remark = '修改供应商' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),
editor = SELF.maintain_uid,
edit_date = SYSDATE
WHERE vendor_id = p_id;
COMMIT;
END;
MEMBER PROCEDURE delete_vendor(p_id IN INTEGER) IS
BEGIN
DELETE vd_vendor WHERE vendor_id = p_id;
COMMIT;
END;
MEMBER FUNCTION get_id RETURN INTEGER IS
BEGIN
RETURN vendor_id;
END;
MEMBER FUNCTION get_code RETURN VARCHAR2 IS
BEGIN
RETURN vendor_code;
END;
MEMBER FUNCTION get_name RETURN VARCHAR2 IS
BEGIN
RETURN vendor_name;
END;
END;
/