洛阳市做网站的wordpress百度地图使用方法
news/
2025/9/26 20:03:31/
文章来源:
洛阳市做网站的,wordpress百度地图使用方法,建筑设计公司有哪些部门,互动科技 网站1.2.6 嵌套表AS TABLE OF嵌套表是表中之表#xff0c;一个嵌套表是某些行的集合#xff0c;它在主表中表示为其中的一列。对主表中的每一条记录#xff0c;嵌套表可以包含多个行。语法如下#xff1a;CREATE OR REPLACE TYPE table_name AS TABLE OF type;语法说明#x…1.2.6 嵌套表AS TABLE OF嵌套表是表中之表一个嵌套表是某些行的集合它在主表中表示为其中的一列。对主表中的每一条记录嵌套表可以包含多个行。语法如下CREATE OR REPLACE TYPE table_name AS TABLE OF type;语法说明1. table_name 嵌套表名。2. type数组的类型可以是基本变量如varchar2integer等也可以是自定义的对象类型如上面定义的NAME_TYPE。1.2.7 继承-Oracle中面向对象特征继承父类的子类对象类型将有父类的所有属性、方法和过程。 父类型必须声明为NOT FINAL,子类型使用关键字UNDER。举例--创建父类型CREATE TYPE animal_type AS OBJECT(name VARCHAR2(50),hair VARCHAR2(50),foot VARCHAR2(50)) NOT FINAL;--子类型继承父类型CREATE TYPE cat_type UNDER animal_type(paw VARCHAR2(50));如果父类没有声明为NOT FINAL子类在继承的时候将报错Error: PLS-00590: attempting to create a subtype UNDER a FINAL type。1.2.8 重写overriding重写就是在子类中对父类又有的方法或过程重新实现。重写关键字为overriding在子类中把要重写的方法或过程声明和实现之前加上该关键字。举例定义头部CREATE OR REPLACE TYPE cat_type UNDER annimal_type(paw VARCHAR2(50),OVERRIDING MEMBER PROCEDURE PROC_RUN)定义主体CREATE OR REPLACE TYPE BODY cat_typeISOVERRIDING MEMBER PROCEDURE PROC_RUNISBEGIN//重新实现END;END;1.2.9 对象表对象表是指该表的一行都是一个对象(对象类型的实例)每个对象有一个OID(object ID)。1.2.9.1 对象表的创建创建对象表的语法CREATE TABLE table_name OF object_type;语法说明1.table_name对象表名称执行创建对象表语句后数据库中将会生成一个名字为table_name的表。2.object_type对象类型生成的表的字段和对象类型时对应的。举例CREATE TABLE t_name OF NAME_TYPE;执行上面语句后数据库将生成一个t_name表这个表就是对象表。1.2.9.2 对象表的关联对象表之间没有主外键关联的概念为了体现这层关系oracle中用了ref对象来实现。下面介绍下相关操作法和函数1. ref操作符声明引用类型。如 name ref NAME_TYPE, 变量或字段name就是引用类型存储NAME_TYPE型对象的OID。2. ref(表的别名)函数获得对象表中对象OID值如select ref(a) from otable a。3. deref(OID)函数通过OID找到并返回行对象表中对象。下面通过一个例子说明对象表直接的关联--员工对象类型CREATE OR REPLACE TYPE employee AS OBJECT(cardId VARCHAR2(100),address VARCHAR2(100),sex VARCHAR2(1),name REF NAME_TYPE, --通过REF操作符表示该字段引用NAME_TYPE对象该字段实际存储的时对象的OIDage INTEGER);--创建t_employee对象表CREATE TABLE t_employee OF employee;--向NAME_TYPE的对象表t_name插入数据INSERT INTO t_name VALUES(LI, KUI);INSERT INTO t_name VALUES(ZHANG, LAN);INSERT INTO t_name VALUES(CHEN, MING);COMMIT;--向员工表插入数据INSERT INTO t_employee VALUES(101,beijing,1,(SELECT REF(n) FROM t_name n where n.firstname LI), --通过ref(表别名)获得对象的引用23);INSERT INTO t_employee VALUES(102,shanghai,0,(SELECT REF(n) FROM t_name n where n.firstname ZHANG),--通过ref(表别名)获得对象的引用23);COMMIT;--通过声明一个引用变量新增数据DECLARE-- 声明NAME_TYPE类型的引用name_ref REF NAME_TYPE;BEGINSELECT REF(n) INTO name_ref FROM t_name n where n.firstname CHEN;INSERT INTO t_employee VALUES(103,chengdu,1,name_ref,24);COMMIT;END;--查询员工的信息使用deref来获得对象字段的值SELECT t.cardId, t.address, deref(t.name) from t_employee t;--更新引用类型即赋予新的对象的OID值UPDATE t_employee t SET name (SELECT ref(n) FROM t_name n WHERE n.firstname ZHANG) WHERE t.cardId 103;DELETE FROM t_employee WHERE name (SELECT ref(n) FROM t_name n WHERE n.firstname ZHANG);
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918727.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!