oracleÖжÔÏó±í£¬ref¼°derefµÄÒ»¸öʵÀý¡£
ORACLEÔÚ¹ØÏµÊý¾Ý¿âÍ⣬ÈÚÈëÁËÃæÏò¶ÔÏóµÄÔªËØ£¬±ÈÈç¿ÉÒÔ´´½¨type£¬typeÖ®¼ä¿ÉÒԼ̳У¬type¿ÉÒÔ´ø¹¹Ô캯Êý¡¢ÅÅÐòº¯Êý¡¢¸÷ÖÖ¸÷ÑùµÄ³ÉÔ±º¯Êý¡¢´æ´¢¹ý³ÌµÈµÈ¡£
¶ÔÏó±íÊÇÖ¸¸Ã±íµÄÒ»ÐоÍÊÇÒ»¸ö¶ÔÏó£¬ÓÐÒ»¸öOID(object ID)£¬¶ÔÏó±íÖ®¼äûÓÐÖ÷Íâ¼ü¹ØÁªµÄ¸ÅÄΪÁËÌåÏÖÕâ²ã¹ØÏµ£¬oracleÖÐÓÃÁËref¶ÔÏóÀ´ÊµÏÖ¡£
ÏÂÃæÀý×Ó£¬´´½¨Ò»¸öµØÖ·ÀàÐÍ£¬Ò»¸öÈËÔ±ÀàÐÍ£¬ÈËÔ±ÓеØÖ·ÊôÐÔ£¬ËùÒÔÔÚÈËÔ±ÀàÐÍÖÐÉèÖÃÒ»¸öref addressÀ´È·¶¨Ö¸ÏòËûËùÔÚµØÖ·µÄÖ¸Õë¡£
--´´½¨µØÖ·ÀàÐÍ
create type address as object(
street varchar2(35),
city varchar2(15),
state char(2),
zip_code integer
);
create table addresses of address; --´´½¨µØÖ·¶ÔÏó±í
--´´½¨ÈËÔ±ÀàÐÍ
create type person as object(
first_name varchar2(15),
last_name varchar2(15),
birthday date,
home_address ref address, --Ö¸Ïò¶ÔÓ¦µÄµØÖ·£¬¸ÃµØÖ·Ó¦¸ÃÔÚÁíÍâÒ»¸ö¶ÔÏó±íÖеÄÒ»ÐÐ
phone_number varchar2(15)
);
CREATE TABLE persons of person; --´´½¨ÈËÔ±¶ÔÏó±í
--²åÈëÒ»¸öµØÖ·
insert into addresses values(address('nanhai','shenzhen','gd','518054'));
insert into addresses values(address('shennan','shenzhen','gd','518057'));
--²åÈëÒ»¸öÈËÔ±£¬×¢ÒâÕâÀïµÄhome_address²¿·ÖÊÇÈçºÎ²åÈëÒ»¸öref addressµÄ¡£
insert into persons values(person('shitou','haha',to_date('1982-07-05','yyyy-mm-dd'),
(select ref(a) from addresses a where street='nanhai'),
'1355555555'));
--Ò²¿ÉÒÔÓÃÏÂÃæµÄ¹ý³ÌÀ´²åÈëÒ»¸öÈËÔ±¼Ç¼
declare
addref ref address ;
begin
select ref(a) into addref from addresses a where street='nanhai';
insert into persons
values (person('shitou','haha',to_date('1982-07-05','yyyy-mm-dd'),
addref,'1355555555'));
commit;
end;
--²éѯijÈ˵ĵØÖ·ÐÅÏ¢
select first_name,deref(home_address) from persons;
--Ð޸ĵØÖ·
update persons set home_address=(select ref(a) from addresses a where street='shennan');
--ɾ³ýij¸
Ïà¹ØÎĵµ£º
OracleʵÏÖ×ÔÔöÖ÷¼ü
oracleûÓÐORACLE×ÔÔö×Ö¶ÎÕâÑùµÄ¹¦ÄÜ£¬µ«ÊÇͨ¹ý´¥·¢Æ÷(trigger)ºÍÐòÁÐ(sequence)¿ÉÒÔʵÏÖ¡£
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel&n ......
--ÉèÖÃÃÜÂë·¨¹ýÆÚ
alter profile default limit PASSWORD_LIFE_TIME unlimited;
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
--È¡ÏûÉó¼Æ
alter system set audit_trail='FALSE' scope=spfile;
--¶¨ÒåÁ¬½ÓÊý¾Ý¿âµÄ×î´ó½ø³ÌÊý
alter system set processes=1024 scope=spfile;
--¹Ø±ÕÀ¬»ø»ØÊÕÕ¾
al ......
--´´½¨ÐòÁÐ
create sequence innerid
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20
order;
--´´½¨±í
create table users(
userid int primary key,
username varchar2(20),
userpwd varchar2(20)
);
select * from users;
insert into users values( ......
Êý¾Ý×Öµädict×ÜÊÇÊôÓÚOracleÓû§sysµÄ¡£
¡¡¡¡1¡¢Óû§£º
¡¡¡¡¡¡select username from dba_users;
¡¡¡¡¸Ä¿ÚÁî
¡¡¡¡¡¡alter user spgroup identified by spgtest;
¡¡¡¡2¡¢±í¿Õ¼ä£º
¡¡¡¡¡¡select * from dba_data_files;
¡¡¡¡¡¡select * from dba_tablespaces;//±í¿Õ¼ä
¡¡¡¡¡¡select tablespace_name,sum(bytes), sum(b ......