oracle 嵌套表 例子,什么是Oracle中的嵌套表对象?

本文介绍了数据库中的基于函数的索引和嵌套表的概念。基于函数的索引允许在列上创建索引,该索引基于列上应用的函数,如`TRUNC(HIREDATE)`。而嵌套表是用户定义的数组类型,可以用于存储复杂数据结构,如地址信息。通过示例展示了如何创建和使用嵌套表,并在ORDBMS中定义PL/SQL集合或列。
摘要由CSDN通过智能技术生成

基于函数的索引与嵌套表不同。

常规索引是根据实际列建立的…

create index emp_job_idx on emp (job)

/

…而基于函数的索引是建立在应用于列的函数之上的。例如,在查询没有时间元素的日期列时,我们可以使用什么索引…

create index emp_hire_idx on emp(trunc(hiredate))

/

当我们查询用户索引列时,索引列出现在第一种情况下,但不出现在第二种情况下,因为我们没有为实际列编制索引。我们看到的是系统生成的“列”……

SQL> select index_name, column_name

2 from user_ind_columns

3 where table_name = 'EMP'

4 /

INDEX_NAME COLUMN_NAME

------------------------------ ---------------

PK_EMP EMPNO

EMP_UK ENAME

EMP_JOB_IDX JOB

EMP_HIRE_IDX SYS_NC00010$

SQL>

我们可以在用户索引表达式中看到索引的组成…

SQL> select index_name, column_expression

2 from user_ind_expressions

3 where table_name = 'EMP'

4 /

INDEX_NAME COLUMN_EXPRESSION

------------------------------ --------------------

EMP_HIRE_IDC TRUNC("HIREDATE")

SQL>

嵌套表

嵌套表是不同的:它们是简单或复杂类型的用户定义数组。它们可用于在ORDBMS表中定义PL/SQL集合或列。这样地。。。

SQL> create or replace type address_t

2 as object

3 (

4 address_line_1 varchar2(70)

5 , address_line_2 varchar2(70)

6 , address_line_3 varchar2(70)

7 , address_line_4 varchar2(70)

8 , address_line_5 varchar2(70)

9 , postcode postcodestructure

10 ) final;

11 /

create or replace type address_t

*

ERROR at line 1:

ORA-02303: cannot drop or replace a type with type or table dependents

SQL>

SQL> create or replace type address_nt as table of address_t

2 /

Type created.

SQL>

SQL> create table contact_details (

2 person_id number not null

3 , email_address varchar2(254)

4 , addresses address_nt

5 )

6 nested table addresses store as nested_addresses

7 /

Table created.

SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值