OracleϵÁУºRecord + PL/SQL±í
OracleϵÁУºRecordºÍPL/SQL±í
Ò»£¬Ê²Ã´ÊǼǼRecordºÍPL/SQL±í£¿
¼Ç¼Record£ºÓɵ¥ÐжàÁеıêÁ¿ÀàÐ͹¹³ÉµÄÁÙʱ¼Ç¼¶ÔÏóÀàÐÍ¡£ÀàËÆÓÚ¶àάÊý×é¡£
PL/SQL±í£ºÓɶàÐе¥ÁеÄË÷ÒýÁкͿÉÓÃÁй¹³ÉµÄÁÙʱË÷Òý±í¶ÔÏóÀàÐÍ¡£ÀàËÆÓÚһάÊý×éºÍ¼üÖµ¶Ô¡£
¶¼ÊÇÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ¡£
¶þ£¬Record + PL/SQL±í ÓÃ;ÊÇʲô£¿
Record + PL/SQL±í¿ÉÒÔ½øÐÐÊý¾ÝµÄ¶àÐжàÁд洢¡£ÕâÑùÎÒÃǾͿÉʹÓÃRecord + PL/SQL±íÔÚÐèҪʱ·â×°Ò»¸öÁÙʱµÄ±í¶ÔÏ󣬽øÐд«µÝºÍ²Ù×÷¡£
ͨ¹ýRecord×Ô¶¨Òå±í½á¹¹£¬·â×°Ò»Ìõ¼Ç¼¡£PL/SQL±íÉùÃ÷ ¿ÉÓÃÁÐ ÀàÐÍ ÎªRecordÀàÐÍ£¨½«¿ÉÓÃÁÐÖ¸ÏòRecordÀàÐͱäÁ¿£©£¬Ã¿¸öË÷Òý¶ÔÓ¦Ò»¸öRecordÀàÐͱäÁ¿¡£
Èý£¬Ê¹ÓÃRecord + PL/SQL±í½øÐÐÊý¾ÝµÄ¶àÐжàÁд洢
¢ÙÉùÃ÷RecordÀàÐͺÍPL/SQL±í£¬
ÆäÖÐPL/SQL±íµÄË÷ÒýÁÐΪÖ÷¼üÔ¼ÊøºÍÎ¨Ò»Ô¼ÊøÁлò×ÔÔöInteger¡£¿ÉÓÃÁÐΪRecordÀàÐÍ»ò%RowTypeÀàÐÍ¡£
¢ÚÌî³äPL/SQL±í¿ÉÓÃÁУ¨RecordÀàÐÍ£©£ºÍ¨¹ýË÷ÒýÖ¸ÏòRecord£¬Ê¹ÓÃRecord·ÃÎʼǼ³ÉÔ±¡£
Óï·¨£º
PL/SQL±íÃû(Ë÷ÒýÁÐÖµ).¼Ç¼³ÉÔ± := ¼Ç¼³ÉÔ±ÀàÐÍÖµ£»
»ò
PL/SQL±íÃû(Ë÷ÒýÁÐÖµ) := RecordÀàÐͱäÁ¿£»
--×¢ÒâÆäPL/SQL±íÖÐÉùÃ÷µÄ¿ÉÓÃÁÐÒªºÍÕâÀ︳ֵµÄRecordÀàÐͱäÁ¿½á¹¹Ò»Ñù
¢Û·ÃÎÊPL/SQL±í
ÏÂÃæÊÇÀý×Ó£º
/*conn scott/tiger
Create table empa as select * from emp;
*/
Àý×Ó£º
Declare
Type RecType Is Record
(
rno empa.empno%type,
rname empa.ename%type,
rsal empa.sal%type
);
Type TabType Is Table Of RecType Index By Binary_Integer;
MyTab TabType;
vN Number;
Begin
--Ìî³ä
vN := 1;
For varR In (Select * from empa Order By empno ASC)
Loop
MyTab(vN).rno := varR.empno;
MyTab(vN).rname := varR.ename;
MyTab(vN).rsal := varR.sal;
vN := vN + 1;
End Loop;
--·ÃÎÊ
vN := MyTab.First;
For varR In vN..MyTab.count
L
Ïà¹ØÎĵµ£º
SQLServerºÍOracleµÄ³£Óú¯Êý¶Ô±È
¡¡¡¡1.¾ø¶ÔÖµ
¡¡¡¡S:select abs(-1) value
¡¡¡¡O:select abs(-1) value from dual
¡¡¡¡2.È¡Õû(´ó)
¡¡¡¡S:select ceiling(-1.001) value
¡¡¡¡O:select ceil(-1.001) value from dual
¡¡¡¡3.È¡Õû£¨Ð¡£©
¡¡¡¡S:select floor(-1.001) value
¡¡¡¡O:select floor(-1.001) valu ......
Ö»ÊÇsqlserver ÌṩµÄÔ¶³ÌÊý¾Ý·ÃÎʺ¯Êý; ÔÚ±¾µØsqlserver ÖÐÈ¡ÍⲿÊý¾ÝÔ´Êý¾Ýʱºò¿ÉÓÃ;
¶ÔÁ¬½Ó±¾µØ oracle ²Ù×÷Ô¶³Ì oracle ²»ÄÜʹÓÃ; ²âÊÔ: pl/sql ÖÐʹÓÃ:
select * from openrowset(................); ÎÞЧ!!!!!!!!!!!!!!
ÔÚoracle ÖÐÐèÒª·ÃÎÊÔ¶³ÌÊý¾Ý,ÐèÒª½¨Á¢Ò»Á¬½ÓÔ¶³Ìoracle µÄ dblink ;
ÔÙÓÃÈçÏ·½ ......
ÔÚORACLEÖиø±í¡¢ÁÐÔö¼Ó×¢ÊÍÒÔ¼°¶ÁȡעÊÍ
1¡¢¸ø±íÌî¼Ó×¢ÊÍ£ºSQL>comment on table ±íÃû is '±í×¢ÊÍ";
2¡¢¸øÁмÓ×¢ÊÍ£ºSQL>comment on column ±í.ÁÐ is 'ÁÐ×¢ÊÍ';
3¡¢¶ÁÈ¡±í×¢ÊÍ£ºSQL>select * from user_tab_comments where comments is not null;
4¡¢¶ÁÈ¡ÁÐ×¢ÊÍ£ºSQL>select * from user_col_commnents wh ......
Oracle ´¥·¢Æ÷ÓÐÓï¾ä¼¶´¥·¢Æ÷ºÍÐм¶´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷ µ±É¾³ý²¿ÃűíÖеIJ¿ÃźÅʱ£¬Í¬Ê±É¾³ýµôÔ±¹¤±íÖв¿ÃźÅΪ£ºold.deptnoµÄ¼Ç¼
create or replace trigger del_dept_id
after delete on dept
for each row
begin
delete from emp where deptno=:old.deptno;
end;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......
Ïȹ¹ÔìÒ»¸ö±í:
create table emp2(
id number(2),
name varchar(10),
currdate date,
action varchar2(1)
)
´´½¨´¥·¢Æ÷£º
create or replace trigger d_i_u_emp2
after insert or update or delete on mysort
begin
if inserting then
insert into emp2 values (12,'dog',sysdate,'i');
elsif deleting then ......