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ÌṩÁË´óÁ¿Ë÷ÒýÑ¡Ïî¡£ÖªµÀÔÚ¸ø¶¨Ìõ¼þÏÂʹÓÃÄĸöÑ¡Ïî¶ÔÓÚÒ»¸öÓ¦ÓóÌÐòµÄÐÔÄÜÀ´Ëµ·Ç³£ÖØÒª¡£Ò»¸ö´íÎóµÄÑ¡Ôñ¿ÉÄÜ»áÒý·¢ËÀËø£¬²¢µ¼ÖÂÊý¾Ý¿âÐÔÄܼ±¾çϽµ»ò½ø³ÌÖÕÖ¹¡£¶øÈç¹û×ö³öÕýÈ·µÄÑ¡Ôñ£¬Ôò¿ÉÒÔºÏÀíʹÓÃ×ÊÔ´£¬Ê¹ÄÇЩÒѾÔËÐÐÁ˼¸¸öСʱÉõÖÁ¼¸ÌìµÄ½ø³ÌÔÚ¼¸·ÖÖÓµÃÒÔÍê³É£¬ÕâÑù»áʹÄúÁ¢¿Ì³ÉΪһλӢÐÛ¡£ÕâÆªÎÄÕ¾ͽ«¼òµ¥µÄ ......
create database link user_auth
¡¡¡¡ connect to user_auth identified by user_auth
¡¡¡¡ using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.236)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=develop1)))'; ......
create or replace type mytype IS TABLE OF varchar2(20);
declare type1 mytype :=mytype('1','2','3','4');
i number:=1;
var_str varchar(20):='liaomin';
begin
type1.EXTEND;
type1(type1.COUNT):=var_str;
loop
dbms_output.put_line(type1(i));
i:=i+1;
exit when i=type1.count+1; ......
Àí½âoracleÖÐÁ¬½ÓºÍ»á»° 1. ¸ÅÄͬ£º¸ÅÄͬ£º
Á¬½ÓÊÇÖ¸ÎïÀíµÄÍøÂçÁ¬½Ó¡£
ÔÚÒѽ¨Á¢µÄÁ¬½ÓÉÏ£¬½¨Á¢¿Í»§¶ËÓëoracleµÄ»á»°£¬ÒÔºó¿Í»§¶ËÓëoracleµÄ½»»¥¶¼ÔÚÒ»¸ö»á»°»·¾³ÖнøÐС£
2. ¹ØÏµÊǶà¶Ô¶à£º
Ò»¸öÁ¬½ÓÉÏ¿ÉÒÔ½¨Á¢0¸ö£¬1¸ö£¬2¸ö£¬¶à¸ö»á»°¡£
OracleÔÊÐí´æÔÚÕâÑùµÄ»á»°£¬¾ÍÊÇʧȥÁËÎïÀíÁ¬½ÓµÄ»á»°¡£
3. ¸ÅÄîÓ¦Ó㺸 ......