如何在 oracle SQL 开发人员的对象关系数据库功能中定义表之间的对象引用
Posted
技术标签:
【中文标题】如何在 oracle SQL 开发人员的对象关系数据库功能中定义表之间的对象引用【英文标题】:How do I define object-references between tables in object-relational database feature of oracle SQL developer 【发布时间】:2013-02-22 23:36:46 【问题描述】:我在 Oracle 11g 中成功创建了一个具有以下属性的 EmployeeType;
emp_id VARCHAR2(5)
title VARCHAR(15)
firstname VARCHAR(20)
surname VARCHAR(20)
address Addresstype
tel_no ARRAY(3) of VARCHAR(15)
get_address() VARCHAR2()
并被告知在 Oracle 11g 中使用以下属性创建 DepartmentType
dept_id VARCHAR2(3)
location AddressType
manager REF Employee
但我现在的问题是我不知道如何使用对象关系 REF 构造来定义两个表之间的对象引用,以便将部门与员工相关联,以便我可以创建存储部门详细信息和插入行的表.
【问题讨论】:
你使用什么语言? 【参考方案1】:您可以使用一些您可以阅读的 ORM(对象关系映射)框架here
What is an Object-Relational Mapping Framework?
这是一个很大的话题,或者你可以自己想办法去做,但你必须知道,关系数据库只是有数据的行,与面向对象的对象无关,你可以把它当作一种存储数据的方法。
我希望这会有所帮助。
【讨论】:
我使用以下命令创建 DepartmentType 作为 OBJECT (dept_id VARCHAR2(3), locations AddressType, manager REF EmployeeType)NOT FINAL;但是当我尝试使用以下命令 INSERT INTO department VALUES (D01, AddressType(47, 'Canal Street', 'Manchester', 'MR8 9WR'), (SELECT REF(e) FROM EMPLOYEE e WHERE emp_id = 2));将行插入到部门表中,我收到一条错误消息“此处不允许列”。请我真的需要解决这个问题。 @chidoskychidosky 如果我在D01
周围添加单引号,您的插入对我有用。
@ Jonearles 非常感谢。我引用这两个表的方式对吗?
请问如何通过使用对象引用加入Employee和department表。
要回答您的加入问题,请从以下位置开始阅读:Creating References to View Objects
,您将不得不使用 REF
修饰符 docs.oracle.com/cd/A87860_01/doc/appdev.817/a76976/adobjvew.htm 但我认为您通过处理对象引用会使其变得更加困难。以上是关于如何在 oracle SQL 开发人员的对象关系数据库功能中定义表之间的对象引用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL 开发人员中查看/执行授予的存储过程
ORACLE如何查看修改连接数,进程数及用户数,三者之间关系