oracle. 数组清空,Oracle数组 - 如花如果如落叶的个人空间 - OSCHINA - 中文开源技术交流社区...

/*创建变长数组类型*/

CREATE TYPE t_varray_address AS VARRAY(3) OF VARCHAR2(50)

ALTER TYPE t_varray_address MODIFY LIMIT 10 CASCADE;

/*创建嵌套表类型*/

CREATE TYPE t_nested_table_address AS TABLE OF t_address

CREATE TABLE customers_with_varray(

id  INTEGER PRIMARY KEY,

first_name VARCHAR2(10),

last_name  VARCHAR2(10),

addresses  t_varray_address

)

CREATE TABLE customers_with_nested_table(

id  INTEGER PRIMARY KEY,

first_name VARCHAR2(10),

last_name  VARCHAR2(10),

addresses  t_nested_table_address

)

NESTED TABLE

addresses

STORE AS

nested_addresses

/*获取变长数组类型*/

DESCRIBE t_varray_address

/*从user_varrays视图中检索出t_varray_address的详细信息*/

SELECT parent_table_name,parent_table_column,type_name FROM user_varrays

WHERE type_name='T_VARRAY_ADDRESS';

SELECT table_name,table_type_name,parent_table_name,parent_table_column FROM user_nested_tables

WHERE table_name='NESTED_ADDRESS'

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

/*填充变长数组元素*/

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

INSERT INTO customers_with_varray VALUES(

1,'Steve','Brown',

t_varray_address(

'2 State Street,Beantown,MA,12345',

'4 Hill Street,Lost Town,CA,54321'

)

)

INSERT INTO customers_with_varray VALUES(

2,'John','Smith',

t_varray_address(

'1 High Street,Newtown,CA,12347',

'3 New Street,AnyTown,MI,54323',

'7 Market Street,Main Town,MA,54323'

)

)

SELECT * FROM customers_with_varray

/*填充嵌套表元素*/

INSERT INTO customers_with_nested_table VALUES(

1,'Steve','Brown',

t_nested_table_address(

t_address('2 State Street','Beantown','MA','12345'),

t_address('4 Hill Street','Lost Town','CA','54321')

)

)

INSERT INTO customers_with_nested_table VALUES(

2,'John','Smith',

t_nested_table_address(

t_address('1 High Street','Newtown','CA','12347'),

t_address('3 New Street','AnyTown','MI','54321'),

t_address('7 Market Street','Main Town','MA','54323')

)

)

SELECT * FROM customers_with_nested_table WHERE id=1

SELECT a.*  FROM customers_with_nested_table c, TABLE(c.addresses) a  WHERE id = 1

SELECT *    FROM TABLE (SELECT addresses  FROM customers_with_nested_table

WHERE id = 1)

SELECT c.id,c.first_name,c.last_name,a.* FROM customers_with_varray c,

TABLE(c.addresses) a   WHERE id=1

SELECT a.city,a.state   FROM customers_with_nested_table c, TABLE(c.addresses) a

WHERE id = 1

/*更改变长数组元素*/

UPDATE customers_with_varray

SET addresses=t_varray_address(

'6 Any Street,Lost Town,GA,33347',

'3 New Street,Anytown,MT,54323')

WHERE id=2

SELECT a.* FROM customers_with_varray c,TABLE(addresses) a WHERE id=2

/*更改嵌套表元素*/

UPDATE TABLE(

SELECT addresses FROM customers_with_nested_table

WHERE id=2

) addr

SET VALUE(addr)=t_address('9 Any Street','Lost Town','VA','74321')

WHERE VALUE(addr)=t_address('1 High Street','Newtown','CA','12347')

EXPLAIN PLAN SET STATEMENT_ID='EXISTS_QUERY' FOR

SELECT deptno,dname FROM dept WHERE EXISTS(

SELECT deptno FROM dept WHERE loc='nanjing')

SELECT XMLELEMENT("location",loc) AS XML_CITY

FROM dept WHERE deptno=50

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值