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
Ïà¹ØÎĵµ£º
µ±Ç°Èκΰ汾µÄORACLE¿Í»§¶ËÔÚÈκΰ汾µÄWINDOWS7É϶¼²»ÄÜÕý³£Íê³É°²×°¡£
Ö÷ÒªÊÇÒòΪORACLE°²×°µÄÏȾöÌõ¼þÀï²Ù×÷ϵͳ°æ±¾²»·ûºÏ£¬µ«ÊÇÕâ¸öÒÉÎÊ¿ÉÒÔÐÞ¸Ärefhost.xml´¦Àí£¬ ¾ßÌåÊÇÔÚrefhost.xmlÖÐÌí¼Ó
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
& ......
NULLÖ¸µÄÊÇ¿ÕÖµ£¬»òÕß·Ç·¨Öµ¡£
NVL (expr1, expr2)->expr1ΪNULL£¬·µ»Øexpr2£»²»ÎªNULL£¬·µ»Øexpr1¡£×¢ÒâÁ½ÕßµÄÀàÐÍÒªÒ»ÖÂ
NVL2 (expr1, expr2, expr3) ->expr1²»ÎªNULL£¬·µ»Øexpr2£»ÎªNULL£¬·µ»Øexpr3¡£expr2ºÍexpr3ÀàÐͲ»Í¬µÄ»°£¬expr3»áת»»Îªexpr2µÄÀàÐÍ
NULLIF (expr1, expr2) ->ÏàµÈ·µ»ØNULL£¬²»µÈ·µ»Øex ......
select * from (select t.*,rownum rn from (select * from emp) t where rownum<=10) where rn>=6;
´´½¨·ÖÒ³½á¹û¼¯µÄÓαê
create or replace package fenyepackage as
type testcursor is ref cursor;
end fenyepackage;
´´½¨·ÖÒ³´æ´¢¹ý³Ì
create or replace procedure fenye3(
tableName varchar2, --±íÃû
......
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;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......