如何在 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 开发人员的对象关系数据库功能中定义表之间的对象引用的主要内容,如果未能解决你的问题,请参考以下文章

查询在 JDBC 中使用时返回的行数少于 SQL 开发人员

Oracle_071_lesson_p1

如何在 Oracle SQL 开发人员中查看/执行授予的存储过程

ORACLE如何查看修改连接数,进程数及用户数,三者之间关系

如何使用 pl/sql 脚本导出 oracle sql 开发人员表模式?

在 Oracle SQL 开发人员中看不到过程/函数主体