INDEX BY TABLE 记录索引表

本文展示了一个关于如何在Oracle数据库中创建表、序列及进行数据插入和查询操作的完整示例。通过定义表结构、创建序列并使用这些序列来自动填充主键字段,最后通过循环查询展示了数据的读取过程。
 

/* Formatted on 2012/02/22 18:30 (Formatter Plus v4.8.7) */

CREATE TABLE test_index_by_table_beke(

my_name VARCHAR2(25),

age NUMBER,

creation_date DATE,

created_by NUMBER,

last_update_date DATE,

last_update_by NUMBER,

last_update_login NUMBER,

my_id NUMBER

)

CREATE TABLE test_index_by_table_beker(

my_name VARCHAR2(25),

age NUMBER,

creation_date DATE,

created_by NUMBER,

last_update_date DATE,

last_update_by NUMBER,

last_update_login NUMBER,

my_id NUMBER

)

/* Formatted on 2012/02/22 18:31 (Formatter Plus v4.8.7) */

CREATE SEQUENCE test_index_by_table_beke_s

START WITH 1

INCREMENT BY 1;

/* Formatted on 2012/02/22 18:31 (Formatter Plus v4.8.7) */

INSERT INTO test_index_by_table_beker

(creation_date,

last_update_date,

my_id

)

VALUES (SYSDATE,

SYSDATE,

test_index_by_table_beke_s.NEXTVAL

);

/* Formatted on 2012/02/22 18:29 (Formatter Plus v4.8.7) */

DECLARE

TYPE test_tab_type IS TABLE OF test_index_by_table_beke%ROWTYPE

INDEX BY BINARY_INTEGER;

my_test_table test_tab_type;

v_count NUMBER (3) := 5;

BEGIN

FOR i IN 1 .. v_count

LOOP

SELECT *

INTO my_test_table (i)

FROM test_index_by_table_beker

WHERE my_id = i;

END LOOP;

FOR i IN my_test_table.FIRST .. my_test_table.LAST

LOOP

DBMS_OUTPUT.put_line (my_test_table (i).my_id);

END LOOP;

END;

 

output:

 

1

2

3

4

5

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值