oracleÁÙʱ±í
˵Ã÷:ÏÂÎÄÖеÄһЩ˵Ã÷ºÍʾÀý´úÂëÕª×ÔCSDN,Ë¡²»Ò»Ò»Ö¸Ã÷³ö´¦,ÔÚ´ËÒ»²¢¶ÔÏà¹Ø×÷Õß±íʾ¸Ðл!
¡¡¡¡1 Óï·¨
¡¡¡¡ÔÚOracleÖУ¬¿ÉÒÔ´´½¨ÒÔÏÂÁ½ÖÖÁÙʱ±í£º
¡¡¡¡1) »á»°ÌØÓеÄÁÙʱ±í
¡¡¡¡CREATE GLOBAL TEMPORARY ( )
¡¡¡¡ON COMMIT PRESERVE ROWS£»
¡¡¡¡2) ÊÂÎñÌØÓеÄÁÙʱ±í
¡¡¡¡CREATE GLOBAL TEMPORARY ( )
¡¡¡¡ON COMMIT DELETE ROWS£»
¡¡¡¡CREATE GLOBAL TEMPORARY TABLE MyTempTable
¡¡¡¡Ëù½¨µÄÁÙʱ±íËäÈ»ÊÇ´æÔڵ쬵«ÊÇÈç¹ûinsert Ò»Ìõ¼Ç¼ȻºóÓñðµÄÁ¬½ÓµÇÉÏÈ¥select£¬¼Ç¼Êǿյġ£¡¡¡¡
¡¡¡¡--ON COMMIT DELETE ROWS ˵Ã÷ÁÙʱ±íÊÇÊÂÎñÖ¸¶¨£¬Ã¿´ÎÌá½»ºóORACLE½«½Ø¶Ï±í£¨É¾³ýÈ«²¿ÐУ©
¡¡¡¡--ON COMMIT PRESERVE ROWS ˵Ã÷ÁÙʱ±íÊǻỰָ¶¨£¬µ±ÖжϻỰʱORACLE½«½Ø¶Ï±í¡£¡¡¡¡
¡¡¡¡2 ¶¯Ì¬´´½¨
¡¡¡¡create or replace procedure pro_temp(v_col1 varchar2,v_col2 varchar2) as
¡¡¡¡v_num number;
¡¡¡¡begin
¡¡¡¡select count(*) into v_num from user_tables where table_name='T_TEMP';¡¡¡¡
¡¡¡¡--create temporary table
¡¡¡¡if v_num<1 then
¡¡¡¡execute immediate 'CREATE GLOBAL TEMPORARY TABLE T_TEMP (
¡¡¡¡COL1 VARCHAR2(10),
¡¡¡¡COL2 VARCHAR2(10)
¡¡¡¡) ON COMMIT delete ROWS';
¡¡¡¡end if;¡¡¡¡
¡¡¡¡--insert data
¡¡¡¡execute immediate 'insert into t_temp values('''¡¡¡¡v_col1¡¡¡¡''','''¡¡¡¡v_col2¡¡¡¡''')';¡¡¡¡
¡¡¡¡execute immediate 'select col1 from t_temp' into v_num;
¡¡¡¡dbms_output.put_line(v_num);
¡¡¡¡execute immediate 'delete from t_temp';
¡¡¡¡commit;
¡¡¡¡execute immediate 'drop table t_temp';
¡¡¡¡end pro_temp;¡¡¡¡
¡¡¡¡²âÊÔ:¡¡¡¡
¡¡¡¡15:23:54 SQL> set serveroutput on
¡¡¡¡15:24:01 SQL> exec pro_temp('11','22');
¡¡¡¡11¡¡¡¡
¡¡¡¡PL/SQL ¹ý³ÌÒѳɹ¦Íê³É¡£¡¡¡¡
¡¡¡¡ÒÑÓÃʱ¼ä: 00: 00: 00.79
¡¡¡¡15:24:08 SQL> desc t_temp;
¡¡¡¡ERROR£º
¡¡¡¡ORA-04043: ¶ÔÏó t_temp ²»´æÔÚ¡¡¡¡
¡¡¡¡3 ÌØÐÔºÍÐÔÄÜ(ÓëÆÕͨ±íºÍÊÓͼµÄ±È½Ï)
¡¡¡¡ ÁÙʱ±íÖ»ÔÚµ±Ç°Á¬½ÓÄÚÓÐЧ
¡¡¡¡ÁÙʱ±í²»½¨Á¢Ë÷Òý,ËùÒÔÈç¹ûÊý¾ÝÁ¿±È½Ï´ó»ò½øÐжà´Î²éѯʱ,²»ÍƼöʹÓÃ
¡¡¡¡Êý¾Ý´¦Àí±È½Ï¸´ÔÓµÄʱºòʱ±í¿ì,·´Ö®ÊÓͼ¿ìµã
¡¡¡¡ÔÚ½ö½ö²éѯÊý¾ÝµÄʱºò½¨ÒéÓÃÓαê: open cursor for 'sql clause';
Ïà¹ØÎĵµ£º
¸ß¼¶¸´ÖÆ
ʲôÊǸ´ÖÆ£¿¼òµ¥µØËµ¸´ÖƾÍÊÇÔÚÓÉÁ½¸ö»òÕß¶à¸öÊý¾Ý¿âϵͳ¹¹³ÉµÄÒ»¸ö·Ö²¼Ê½Êý¾Ý¿â»·¾³Öп½±´Êý¾ÝµÄ¹ý³Ì¡£
¸ß¼¶¸´ÖÆ£¬ÊÇÔÚ×é³É·Ö²¼Ê½Êý¾Ý¿âϵͳµÄ¶à¸öÊý¾Ý¿âÖи´ÖƺÍά»¤Êý¾Ý¿â¶ÔÏóµÄ¹ý³Ì¡£ Oracle ¸ß¼¶¸´ÖÆÔÊÐíÓ¦ÓóÌÐò¸üÐÂÊý¾Ý¿âµÄÈκθ±±¾£¬²¢½«ÕâЩ¸ü¸Ä×Ô¶¯´«µÝµ½ÆäËûÊ ......
ÅäÖÃÉí·ÝÑéÖ¤
OracleΪÓû§ÕË»§ÌṩÈýÖÖÉí·ÝÑéÖ¤·½·¨£º
(1)ÃÜÂëÑéÖ¤
µ±Ò»¸öʹÓÃÃÜÂëÑéÖ¤»úÖÆµÄÓû§ÊÔͼÁ¬½Óµ½Êý¾Ý¿âʱ£¬Êý¾Ý¿â»áºËʵÓû§ÃûÊÇ·ñÊÇÒ»¸öÓÐЧµØÊý¾Ý¿âÓû§£¬²¢ÇÒÌṩÓë¸ÃÓû§ÔÚÊý¾Ý¿âÖд洢µÄÃÜÂëÏàÆ¥ÅäµÄÃÜÂë¡£
(2)ÍⲿÑéÖ¤
µ±Ò»¸öÍⲿÑé֤ʽÓû§ÊÔͼÁ¬½Óµ½Êý¾Ý¿âʱ£¬Êý¾Ý¿â»áºËʵÓû§ÃûÊÇ·ñÊÇÒ»¸öÓÐЧµÄ ......
¡¡²Ù×÷·ûÓÅ»¯
¡¡¡¡IN ²Ù×÷·û
¡¡¡¡ÓÃINд³öÀ´µÄSQLµÄÓŵãÊDZȽÏÈÝÒ×д¼°ÇåÎúÒ×¶®£¬Õâ±È½ÏÊʺÏÏÖ´úÈí¼þ¿ª·¢µÄ·ç¸ñ¡£
¡¡¡¡µ«ÊÇÓÃINµÄSQLÐÔÄÜ×ÜÊDZȽϵ͵쬴ÓORACLEÖ´ÐеIJ½ÖèÀ´·ÖÎöÓÃINµÄSQLÓë²»ÓÃINµÄSQLÓÐÒÔÏÂÇø±ð£º
¡¡¡¡ORACLEÊÔͼ½«Æäת»»³É¶à¸ö±íµÄÁ¬½Ó£¬Èç¹ûת»»²»³É¹¦ÔòÏÈÖ´ÐÐINÀïÃæµÄ×Ó²éѯ£¬ÔÙ²éѯÍâ²ãµÄ±í¼Ç¼£ ......
Oracle°æ±¾µÄÇø±ðÓÐÄÇЩ
http://database.51cto.com/art/201004/196494.htm
http://database.51cto.com
2010-04-23 15:20 ØýÃû »¥ÁªÍø ÎÒÒªÆÀÂÛ(
0
)
ͻ񻣼
ÒÔϵÄÎÄÕÂÖ÷ÒªÊǶÔOracle°æ±¾µÄÇø±ðµÄ¼òÊö£¬Èç¹ûÄã¶ÔÆäµÄÏà¹ØÄÚÈݸÐÐËȤµÄ
»°£¬ÒÔϵÄÎÄÕÂÖ÷Òª¾ÍÊÇ¶ÔÆäÏà¹ØÄÚÈÝµÄ ......
ÎÒÔÚ¹¤×÷ÖÐÔÚOracleÖжà±í²éѯÔÙ°´Ê±¼äµ¹Ðòʱ£¬ÓÃorder by ±íÃû.datatime desc ×ÜÊÇʵÏÖ²»ÁË¡£
²»¹ý×îºóÎÊÑî¾é×îºóºÍÎÒ˵¿ÉÒÔ°ÑÎÒÃDzéѯµÄ×ܸösqlÓï¾ä×öΪһ¸ö±íÀ´ÅÅÐò£º
select rownum,aa.* from (.... order by ±íÃû.datatime desc ) aa ......