Oracle %TYPEºÍ%ROWTYPE
Oracle PL/SQLÖÐÈçºÎʹÓÃ%TYPEºÍ%ROWTYPE
¡¡¡¡1. ʹÓÃ%TYPE
¡¡¡¡ÔÚÐí¶àÇé¿öÏ£¬PL/SQL±äÁ¿¿ÉÒÔÓÃÀ´´æ´¢ÔÚÊý¾Ý¿â±íÖеÄÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬±äÁ¿Ó¦¸ÃÓµÓÐÓë±íÁÐÏàͬµÄÀàÐÍ¡£ÀýÈ磬students±íµÄfirst_nameÁеÄÀàÐÍΪVARCHAR2(20),ÎÒÃÇ¿ÉÒÔ°´ÕÕÏÂÊö·½Ê½ÉùÃ÷Ò»¸ö±äÁ¿£º
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName VARCHAR2(20);
¡¡¡¡µ«ÊÇÈç¹ûfirst_nameÁеĶ¨Òå¸Ä±äÁ˻ᷢÉúʲô£¨±ÈÈç˵±í¸Ä±äÁË£¬first_nameÏÖÔÚµÄÀàÐͱäΪVARCHAR2(25)£©£¿ÄǾͻᵼÖÂËùÓÐʹÓÃÕâ¸öÁеÄPL/SQL´úÂ붼±ØÐë½øÐÐÐ޸ġ£Èç¹ûÄãÓкܶàµÄPL/SQL´úÂ룬ÕâÖÖ´¦Àí¿ÉÄÜÊÇÊ®·ÖºÄʱºÍÈÝÒ׳ö´íµÄ¡£
¡¡¡¡Õâʱ£¬Äã¿ÉÒÔʹÓÔ%TYPE”ÊôÐÔ¶ø²»Êǽ«±äÁ¿ÀàÐÍÓ²ÐÔ±àÂë¡£
¡¡¡¡ÀýÈ磺
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName students.first_name%TYPE;
¡¡¡¡Í¨¹ýʹÓÃ%TYPE,v_FirstName±äÁ¿½«Í¬students±íµÄfirst_nameÁеÄÀàÐÍÏàͬ£¨¿ÉÒÔÀí½âΪ½«Á½Õ߰ÆðÀ´£©¡£
¡¡¡¡Ã¿´ÎÄäÃû¿é»òÃüÃû¿éÔËÐиÃÓï¾ä¿éÒÔ¼°±àÒë´æ´¢¶ÔÏ󣨹ý³Ì¡¢º¯Êý¡¢°ü¡¢¶ÔÏóÀàºÍ´¥·¢Æ÷£©Ê±£¬¾Í»áÈ·¶¨¸ÃÀàÐÍ¡£
¡¡¡¡Ê¹ÓÃ%TYPEÊǷdz£ºÃµÄ±à³Ì·ç¸ñ£¬ÒòΪËüʹµÃPL/SQL¸ü¼ÓÁé»î£¬¸ü¼ÓÊÊÓ¦ÓÚ¶ÔÊý¾Ý¿â¶¨ÒåµÄ¸üС£
¡¡¡¡2. ʹÓÃ%ROWTYPE
¡¡¡¡2.1 PL/SQL¼Ç¼
¡¡¡¡PL/SQL¼Ç¼ÀàÐÍÀàËÆÓÚCÓïÑÔÖеĽṹ£¬ÊÇÒ»ÖÖ¸´ºÏÀàÐÍ£¬ÊÇÓû§×Ô¶¨ÒåµÄ¡£
¡¡¡¡¼Ç¼ÌṩÁËÒ»ÖÖ´¦Àí¶ÀÁ¢µÄµ«ÓÖ×÷Ϊһ¸öÕûÌåµ¥ÔªÏà¹ØµÄ±äÁ¿µÄ»úÖÆ¡£Çë¿´£º
¡¡¡¡DECLARE
¡¡¡¡ v_StudentID NUMBER(5);
¡¡¡¡ v_FirstName VARCHAR2(20);
¡¡¡¡ v_LastName VARCHAR2(20);
¡¡¡¡Õâ3¸ö±äÁ¿ÔÚÂß¼ÉÏÊÇÏ໥¹ØÁªµÄ£¬ÒòΪËûÃÇÖ¸Ïòstudents±íÖв»Í¬µÄ×ֶΡ£Èç¹ûΪÕâЩ±äÁ¿ÉùÃ÷Ò»¸ö¼Ç¼ÀàÐÍ£¬ÄÇôËûÃÇÖ®¼äµÄ¹Øϵ¾ÍÊ®·ÖÃ÷ÏÔ£¬¿É×÷Ϊһ¸öµ¥Ôª½øÐд¦Àí¡£
¡¡¡¡DECLARE
¡¡¡¡ /*Define a record type to hold common student informationi*/
¡¡¡¡ TYPE t_StudentRecord IS RECORD(
¡¡¡¡ StudentID NUMBER(5),
¡¡¡¡ FirstName VARCHAR2(20),
¡¡¡¡ LastName VARCHAR2(20);
¡¡¡¡ /*Declare a variable of this type.*/
¡¡¡¡ v_StudentInfo t_StudentRecord;
¡¡¡¡2.2 ¼Ç¼¸³Öµ
¡¡¡¡ ¿ÉÒÔÓÃSELECTÓï¾äÏò¼Ç¼¸³Öµ£¬Õ⽫»á´ÓÊý¾Ý¿âÖмìË÷Êý¾Ý²¢½«¸ÃÊý¾Ý´æ´¢µ½¼Ç¼ÖС£×¢ÒâµÄÊÇ£¬¼Ç¼ÖÐ×Ö¶ÎÓ¦¸ÃºÍ²éѯ½á¹ûÁбíÖеÄ×Ö¶ÎÏàÆ¥Åä¡£
¡¡¡¡SELECT studentID,firstName,lastName
¡¡¡¡into v_StudentInfo
¡¡¡¡from students where studentID=32;
¡¡¡¡2.3 ʹÓÃ%ROWTYPE
¡¡¡¡ÔÚPL/SQLÖн«Ò»¸ö¼Ç¼ÉùÃ
Ïà¹ØÎĵµ£º
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
ÉùÃ÷£º
ÒÔϵÄÀý×Ó²»Ò»¶¨ÕýÈ·£¬Ö»ÊÇΪÁËÑÝʾ´ó¸ÅµÄÁ÷³Ì¡£
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
È»ºóÄØ£¬ÔÚjavaÀïµ÷ÓÃʱ¾ÍÓÃÏÂÃæµÄ´ ......
Êýѧº¯Êý
ÔÚoracle ÖÐdistinct¹Ø¼ü×Ö¿ÉÒÔÏÔʾÏàͬ¼Ç¼ֻÏÔʾһÌõ
¡¡¡¡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
......
ÓÉÓÚÒÔÇ°¶¼ÊÇÔÚ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 ;
ÔÙÓÃÈçÏ·½ ......