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
Ïà¹ØÎĵµ£º
http://www.umgr.com/blog/PostView.aspx?bpId=36294
1. Ö´ÐÐsqlÓï¾ä
int sqlite3_exec(sqlite3*£¬ const char *sql£¬ sqlite3_callbacksql Óï·¨
£¬ void *£¬ char **errmsg );
Õâ¾ÍÊÇÖ´ÐÐÒ»Ìõ sql Óï¾äµÄº¯Êý¡£
µÚ1¸ö²ÎÊý²»ÔÙ˵ÁË£¬ÊÇÇ°Ãæopenº¯ÊýµÃµ½µÄÖ¸Õ롣˵ÁËÊǹؼüÊý¾Ý½á¹¹¡£
µÚ2¸ö²ÎÊýconst char ......
ÓÉÓÚÒÔÇ°¶¼ÊÇÔÚsqlserver 2005´¦Àí£¬ÏÖÔÚ¿Í»§ÒªÇóoracleÊý¾Ý¿â·þÎñÆ÷£¬
×î³õµÄ´úÂëΪ£º
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
µ±Ö´ÐеÄʱºò±¨£ºBigDecimalÎÞ·¨×ª»¯ÎªIntegerÀàÐÍ
ΪÁ˼æÈÝÁ½ÕßÐ޸ĺóµÄ´úÂëΪ£º
Object o = rs1.getObject(1);
&nbs ......
Ö»ÊÇsqlserver ÌṩµÄÔ¶³ÌÊý¾Ý·ÃÎʺ¯Êý; ÔÚ±¾µØsqlserver ÖÐÈ¡ÍⲿÊý¾ÝÔ´Êý¾Ýʱºò¿ÉÓÃ;
¶ÔÁ¬½Ó±¾µØ oracle ²Ù×÷Ô¶³Ì oracle ²»ÄÜʹÓÃ; ²âÊÔ: pl/sql ÖÐʹÓÃ:
select * from openrowset(................); ÎÞЧ!!!!!!!!!!!!!!
ÔÚoracle ÖÐÐèÒª·ÃÎÊÔ¶³ÌÊý¾Ý,ÐèÒª½¨Á¢Ò»Á¬½ÓÔ¶³Ìoracle µÄ dblink ;
ÔÙÓÃÈçÏ·½ ......
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;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......