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³ÌÐòÉè¼Æ(Áù)- ......
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
SQL*PLus> desc emp;
Ãû³Æ &nbs ......
ÉùÃ÷£º
ÒÔϵÄÀý×Ó²»Ò»¶¨ÕýÈ·£¬Ö»ÊÇΪÁËÑÝʾ´ó¸ÅµÄÁ÷³Ì¡£
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
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Êý¾Ýµ¼ÈësqlserverÖÐʱ£¬·¢ÏÖÔÚoracleÖÐ×ֶζ¨ÒåΪΨһË÷Òýʱ£¬²»Í¬¼Ç¼µÄ´Ë×Ö¶ÎÈç¹ûΪ¿Õ²»±»ÈÏΪÊÇÖØ¸´µÄ£¬µ«ÔÚsqlserverÖÐÈç¹û´Ë×Ö¶ÎΪΨһË÷Òý×ֶΣ¬²»ÔÊÐíÓÐ2¸öÒÔÉϵĿÕÖµ¡£ÓôÃÆ¡£ËùÒÔÖ»ºÃ½«sqlserverÖеÄΨһË÷Òý×Ö¶ÎÊÖ¹¤ÐÞ¸ÄΪ¼¸¸ö·Ç¿ÕµÄÖµ£¬µ«ÕâÑù³ÌÐò¿Ï¶¨Òª½øÐÐÐÞ¸ÄÁË¡£ÐèÒªÔÚ³ÌÐòÖÐΪ´Ë×Ö¶ÎÉèÖò»Öظ´ ......