ORACLE PL/SQL¿ª·¢
¸Õ¸ÕÔÚinthirtiesÀÏ´óµÄ²©¿ÍÀï¿´µ½ÕâÆªÎÄÕ£¬Ð´µÄ²»´í£¬ÕýºÃ×Ô¼º×î½üÔÚѧϰPL/SQL£¬×ª¹ýÀ´Ñ§Ï°Ñ§Ï°¡£
==================================================================================
bulk collectÊÇ¿ÉÒÔ¿´×öÊÇÒ»ÖÖÅú»ñÈ¡µÄ·½Ê½£¬ÔÚÎÒÃǵÄplsqlµÄ´úÂë¶ÎÀï¾³£×÷ΪintoµÄÀ©Õ¹À´Ê¹Ó᣶ÔÓÚselect id into v from .... ÊÇÒ»¸ö³£ÓõÄÓ÷¨¡£²»¹ýÕâÀïÖ»ÄÜÊÇ·µ»Øµ¥Ìõ¼Ç¼µÄʱºò£¬²ÅÄÜʹÓã¬Èç¹ûÊÇÓжàÌõ¼Ç¼ÎÒÃǾͲ»ÄÜÓÃÕâÑùµÄ·½Ê½£¬¶øÊÇʹÓÃfetchºÍÑ»·µÄ·½Ê½£¬²»½öʹÓÃÂé·³£¬¶øÇÒÐÔÄÜÒ²µ×Ï£¬ÕâʱÎÒÃǵÄbulk collectÂ¡ÖØµÇ³¡ÁË£¬½â¾öÎÒÃǵÄÎÊÌâ¡£
ͨ¹ýbulk collect¿ÉÒÔ°ÑÎÒÃǵIJéѯ½á¹ûÒ»´ÎÐԵؼÓÔØµ½ÎÒÃǵÄǶÈë±íÖС£ÕâÑùÎÒÃDz»ÐèÒªºÜÂé·³µÄÓÃÓαêµÄÑ»·Ò»ÌõÒ»ÌõµÄÈ¥fetchß·£¬¿ÉÏë¶øÖª£¬ÕâÑù²»½ö²Ù×÷·½±ã£¬Ò²¿ÉÒÔ»ñµÃÏ൱²»´íµÄ³ÌÐòÐÔÄÜ¡£ ÎÒÃÇ¿ÉÒÔÔÚselect into, fetch into, returning intoµÄ¾ä×ÓÖÐʹÓá£ÏÂÃæÎÒÃÇͨ¹ý¶ÔÒÔÉϸ÷¸öÀý×ÓÀ´½øÐÐÑÝʾÀ´¿´¿´ËûÃǵÄÓ÷¨
ÏÈÀ´¿´¿´ÎÒÃǵIJâÊÔ±íºÍÊý¾Ý
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
ZC_CODE VARCHAR2(20)
MONEY NUMBER(35)
MONEY_2 NUMBER(35)
SQL> col zc_code format a20;
SQL> col money format 999999.99;
SQL> col money_2 format 9999.99;
SQL>select * from test;
ZC_CODE MONEY MONEY_2
-------------------- ---------- --------
201 18600.00
20101 9600.00
2010101 3300.00
2010102 3200.00
2010103 3100.00
20102 9000.00
2010201 2000.00
2010202 7000.00
8 rows selected.
¶¨ÒåÎÒÃǵÄǶÌ×±íµÄÀàÐÍ£¬ ¶¨ÒåÔÚÒ»¸öpackageÀÕâ¸öpackageʹÎÒÃǵÄÊý¾ÝÀàÐͼ¯ºÏ
SQL> create or replace package ALL_DATA_TYPE is
2 type T_TESTROW is table of test1.test%rowtype index by binary_integer;
3 type T_TESTZCCODE is table of test1.test.zc_code%type index by binary_integer;
4 end;
5 /
ÏÈÀ´¸öselect intoµÄÀý×Ó
SQL> create or replace function test_bulkcollect return ALL_DATA_TYPE.T_TESTROW is
2 v_rtn ALL_DATA_TYPE.T_TESTROW;
3 begin
4 select * bulk collect into v_rtn from test;
5 return v_rtn;
6 end;
7 /
ͳһµÄ²âÊÔ·½·¨£¬ ÎÒÃÇ·Ö±ðÓÃÕâ¸ö²âÊÔ´úÂëÀ´ÑÝʾÒÔÉÏselect into£¬fetch in
Ïà¹ØÎĵµ£º
Èý¡¢Ç¶Ì×±íµÄʹÓ÷½·¨
1¡¢½«Ç¶Ì×±í¶¨ÒåΪPL/SQLµÄ³ÌÐò¹¹Ôì¿é
TYPE type_name IS TABLE OF element_type[NOT NULL];
ÈçÏÂÀýËùʾ£º
DECLARE
-- Define a nested table of variable length strings.
TYPE card_table IS TABLE OF VARCHAR2(5 CHAR);
-- Declare and initialize a n ......
ËÄ¡¢ÁªºÏÊý×éµÄʹÓ÷½·¨
ÁªºÏÊý×éÒÔǰ±»³ÆÎªPL/SQL±í¡£ÔÚ±íÖв»ÄÜʹÓÃÁªºÏÊý×飬ֻÄܽ«ËüÃÇÓÃ×÷³ÌÐòÉè¼ÆµÄ½á¹¹Ìå¡£Ö»ÄÜÔÚPL/SQLÖзÃÎÊÁªºÏÊý×é¡£
×¢Òâµ½ÁªºÏÊý×é´øÀ´µÄһЩ¹Ø¼üÎÊÌâÊǷdz£ÖØÒªµÄ¡£ÕâЩÎÊÌâʹÎÒÃǽéÉÜËüÃǵÄÓ÷¨Ê±£¬ÐèÒª²ÉÈ¡Ò»Ð©ÌØ±ðµÄ·½·¨¡£ÕâЩÎÊÌâ°üÀ¨£º
ÁªºÏÊý×é²»ÐèÒª³õʼ»¯£¬Ò²Ã»Óй¹Ô캯ÊýÓï·¨¡£ÔÚ ......
ÕâÆªÎÄÕÂÊÇORACLEÃæÊÔµÄÎÊÌâ½õ¼¯£¬ËäÈ»²»È«Ã棬µ«ÊÇÕâÆªÎÄÕ»áÈÃÄãÖªµÀÈçºÎÈÃÃæÊÔ¿¼¹ÙÁ˽âÄã¶ÔORACLE¸ÅÄîµÄÊìϤ³Ì¶È¡£
1.½âÊÍÀ䱸·ÝºÍÈȱ¸·ÝµÄ²»Í¬µãÒÔ¼°¸÷×ÔµÄÓŵã
½â´ð£ºÈȱ¸·ÝÕë¶Ô¹éµµÄ£Ê½µÄÊý¾Ý¿â£¬ÔÚÊý¾Ý¿âÈԾɴ¦ÓÚ¹¤×÷״̬ʱ½øÐб¸·Ý¡£¶øÀ䱸·ÝÖ¸ÔÚÊý¾Ý¿â¹Ø±Õºó£¬½øÐб¸·Ý£¬ÊÊÓÃÓÚËùÓÐÄ£Ê ......
1. SQL Óï¾äÓëSQL*Plus ÃüÁî
SQL
SQL*Plus
Ò»ÖÖÓïÑÔ
Ò»ÖÖ»·¾³
ANSI±ê×¼
Oracle µÄÌØÐÔÖ®Ò»
¹Ø¼ü×Ö²»ÄÜËõд
¹Ø¼ü×Ö¿ÉÒÔËõд
ʹÓÃÓï¾ä¿ØÖÆÊý¾Ý¿âÖеıíµÄ¶¨ÒåÐÅÏ¢
ºÍ±íÖеÄÊý¾Ý
ÃüÁî²»ÄܸıäÊý¾Ý¿âÖеÄÊý¾ÝµÄÖµ
¼¯ÖÐÔËÐÐ
2.ÒÔϼ¸¸ö²éѯºÜÖØÒª£¬×ÐϸÌå»á
1 (ÓÐÔ±¹¤µÄ³ ......