oracle ±Ê¼Ç VI Ö®Óαê (CURSOR)
Óαê(CURSOR),ºÜÖØÒª
Óαê:ÓÃÓÚ´¦Àí¶àÐмǼµÄÊÂÎñ
ÓαêÊÇÒ»¸öÖ¸ÏòÉÏÏÂÎĵľä±ú(handle)»òÖ¸Õë,¼òµ¥Ëµ£¬Óαê¾ÍÊÇÒ»¸öÖ¸Õë
1 ´¦ÀíÏÔʽÓαê
ÏÔʽÓα괦ÀíÐè 4¸ö PL/SQL ²½Öè,ÏÔʾÓαêÖ÷ÒªÓÃÓÚ´¦Àí²éѯÓï¾ä
(1) ¶¨ÒåÓαê
¸ñʽ: CURSOR cursor_name [(partment[,parameter]...)] IS select_statement;
¶¨ÒåµÄÓα겻ÄÜÓÐ INTO ×Ó¾ä
(2) ´ò¿ªÓαê
OPEN cursor_name[...];
PL/SQL ³ÌÐò²»ÄÜÓà OPEN Óï¾äÖØ¸´´ò¿ªÒ»¸öÓαê
(3)ÌáÈ¡ÓαêÊý¾Ý
FETCH cursor_name INTO {variable_list | record_variable};
(4) ¹Ø±ÕÓαê
CLOSE cursor_name;
Àý 1 ²éѯǰ 10 ÃûÔ±¹¤µÄÐÅÏ¢
declare
--¶¨ÒåÓαê
cursor c_cursor is select last_name,salary from employees where rownum < 11 order by salary;
v_name employees.last_name%type;
V_sal employees.salary%type;
begin
--´ò¿ªÓαê
open c_cursor;
-- ÌáÈ¡ÓαêÊý¾Ý
fetch c_cursor into v_name,v_sal;
while c_cursor %found loop
dbms_output.put_line(v_name || ':' || v_sal);
fetch c_cursor into v_name,v_sal;
end loop;
--¹Ø±ÕÓαê
close c_cursor;
end;
----------------------------------
Á·Ï°: ÊäÈ벿ÃźŠdep_id,²éѯ¸Ã²¿Ãŵį½¾ù¹¤×Ê : avg_sal,Ô±¹¤¹¤×ÊΪ salary
Èô salary < avg_sal - 500 ¹¤×ÊÕÇ 500
Èô avg_sal - 500 <= salary < avg_sal + 500 ¹¤×ÊÕÇ 300
Èô
Ïà¹ØÎĵµ£º
¡¡Ò»¡¢ÉèÖóõʼ»¯²ÎÊý job_queue_processes
¡¡¡¡sql> alter system set job_queue_processes=n;£¨n>0£©
¡¡¡¡job_queue_processes×î´óֵΪ1000
¡¡¡¡
¡¡¡¡²é¿´job queue ºǫ́½ø³Ì
¡¡¡¡sql>select name,description from v$bgprocess;
¡¡¡¡
¡¡¡¡¶þ£¬dbms_job package Ó÷¨½éÉÜ
¡¡¡¡°üº¬ÒÔÏÂ×Ó¹ý³Ì£º
......
Oracle ·ÖÎöº¯ÊýʹÓýéÉÜ
·ÖÎöº¯ÊýÊÇoracle816ÒýÈëµÄÒ»¸öȫеĸÅÄî,ΪÎÒÃÇ·ÖÎöÊý¾ÝÌṩÁËÒ»ÖÖ¼òµ¥¸ßЧµÄ´¦Àí·½Ê½.ÔÚ·ÖÎöº¯Êý³öÏÖÒÔǰ,ÎÒÃDZØÐëʹÓÃ×ÔÁª²éѯ,×Ó²éѯ»òÕßÄÚÁªÊÓͼ,ÉõÖÁ¸´ÔӵĴ洢¹ý³ÌʵÏÖµÄÓï¾ä,ÏÖÔÚÖ»ÒªÒ»Ìõ¼òµ¥µÄsqlÓï¾ä¾Í¿ÉÒÔʵÏÖÁË,¶øÇÒÔÚÖ´ÐÐЧÂÊ·½ÃæÒ²ÓÐÏ൱´óµÄÌá¸ß.ÏÂÃæÎÒ½«Õë¶Ô·ÖÎöº¯ ......
¸ôÀë¼¶±ð£¨isoation level£©
¸ôÀë¼¶±ð¶¨ÒåÁËÊÂÎñÓëÊÂÎñÖ®¼äµÄ¸ôÀë³Ì¶È¡£
¸ôÀë¼¶±ðÓë²¢·¢ÐÔÊÇ»¥ÎªÃ¬¶ÜµÄ£º¸ôÀë³Ì¶ÈÔ½¸ß£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½²î£»¸ôÀë³Ì¶ÈÔ½µÍ£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½ºÃ¡£
ANSI/ISO SQ92±ê×¼¶¨ÒåÁËһЩÊý¾Ý¿â²Ù×÷µÄ¸ôÀë¼¶±ð£º
δÌá½»¶Á£¨read uncommitted£©
Ìá½»¶Á£¨read committed£© &n ......
1¡¢select TIMESTAMP'2009-11-03 09:26:50.124' from dual --ĬÈϺÁÃë±£´æÁùλ
2¡¢´ËÓï¾äÖ»ÄÜÔÚ·þÎñÆ÷¶ËÔËÐУ¬Èç¹ûÖ´ÐÐÒÔϲÙ×÷£¬ÔòÔÚ²åÈëoracleʱ£¬¿ÉÒÔÖ±½Óдnls_date_formatÉ趨µÄ¸ñʽ£¬µ«ÊÇÖ»ÄÜÕë¶ÔÒ»´Î»æ»£¬Èç¹û¹Øµô´°¿ÚÔòʧЧ¡£
alter session set nls_d ......
1.ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2.CHR
¸ø³öÕ ......