Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

oracle cursor ÓαêÓ÷¨

Óα꣺
ÓÃÀ´²éѯÊý¾Ý¿â£¬»ñÈ¡¼Ç¼¼¯ºÏ£¨½á¹û¼¯£©µÄÖ¸Õ룬¿ÉÒÔÈÿª·¢ÕßÒ»´Î·ÃÎÊÒ»Ðнá¹û¼¯£¬ÔÚÿÌõ½á¹û¼¯ÉÏ×÷²Ù×÷¡£
·ÖÀࣺ
¾²Ì¬Óα꣺
·ÖΪÏÔʽÓαêºÍÒþʽÓαꡣ
REFÓα꣺
ÊÇÒ»ÖÖÒýÓÃÀàÐÍ£¬ÀàËÆÓÚÖ¸Õë¡£
ÏÔʽÓα꣺
 CURSOR ÓαêÃû ( ²ÎÊý ) [·µ»ØÖµÀàÐÍ] IS
  Select Óï¾ä
ÉúÃüÖÜÆÚ£º
1.´ò¿ªÓαê(OPEN)
½âÎö£¬°ó¶¨¡£¡£¡£²»»á´ÓÊý¾Ý¿â¼ìË÷Êý¾Ý
2.´ÓÓαêÖлñÈ¡¼Ç¼(FETCH INTO)
Ö´Ðвéѯ£¬·µ»Ø½á¹û¼¯¡£Í¨³£¶¨Òå¾ÖÓò±äÁ¿×÷Ϊ´ÓÓαê»ñÈ¡Êý¾ÝµÄ»º³åÇø¡£
3.¹Ø±ÕÓαê(CLOSE)
Íê³ÉÓα괦Àí£¬Óû§²»ÄÜ´ÓÓαêÖлñÈ¡ÐС£»¹¿ÉÒÔÖØÐ´ò¿ª¡£
Ñ¡Ï²ÎÊýºÍ·µ»ØÀàÐÍ
set serveroutput on
declare
 cursor emp_cur ( p_deptid in number) is
select * from employees where department_id = p_deptid;
l_emp employees%rowtype;
begin
 dbms_output.put_line('Getting employees from department 30');
open emp_cur(30);
 loop
  fetch emp_cur into l_emp;
  exit when emp_cur%notfound;
  dbms_output.put_line('Employee id '|| l_emp.employee_id || ' is ');
  dbms_output.put_line(l_emp.first_name || ' ' || l_emp.last_name);
 end loop;
 close emp_cur;
 dbms_output.put_line('Getting employees from department 90');
open emp_cur(90);
 loop
  fetch emp_cur into l_emp;
  exit when emp_cur%notfound;
  dbms_output.put_line('Employee id '|| l_emp.employee_id || ' is ');
  dbms_output.put_line(l_emp.first_name || ' ' || l_emp.last_name);
 end loop;
 close emp_cur;
end;
/
ÒþʽÓα꣺
²»ÓÃÃ÷È·½¨Á¢Óαê±äÁ¿£¬·ÖÁ½ÖÖ£º
1.ÔÚPL/SQLÖÐʹÓÃDMLÓïÑÔ£¬Ê¹ÓÃORACLEÌṩµÄÃûΪSQLµÄÒþʾÓαê
2.CURSOR FOR LOOP£¬ÓÃÓÚfor loop Óï¾ä
1¾ÙÀý£º
declare
begin
 update departments set department_name=department_name;
 --where 1=2;
 
 dbms_output.put_line('update '|| sql%rowcount ||' records');
end;
/
2¾ÙÀý£º
declare
begin
 for my_dept_rec in ( select department_name, department_id from departments)
 loop
  dbms_output.put_line(my_dept_rec.department_id || ' : ' || my_dept_rec.department_name);
 end lo


Ïà¹ØÎĵµ£º

Ïê½âOracleÊý¾Ý¿âÓÅ»¯·½°¸Óëʵ¼ù

ÔÚÕâÀïÎÒÃǽ«½éÉÜOracleÊý¾Ý¿âÓÅ»¯·½°¸Óëʵ¼ù£¬²»Í¬µÄ»·¾³»áÓв»Í¬µÄµ÷ÊÔ£¬µ«ÊÇÒ²»áÓвî±ð£¬Ï£Íû´ó¼ÒÄܺÏÀíµÄÎüÊÕ¡£ Ò»¡¢Ç°ÑÔ ¶þ¡¢ORACLEÊý¾Ý¿âÓÅ»¯¸ÅÊö 1¡¢ÄÚ´æµÈ²ÎÊýÅäÖõÄÓÅ»¯ 2¡¢¼õÉÙÎïÀí¶ÁдµÄÓÅ»¯ 3¡¢ÅúÁ¿Öظ´²Ù×÷µÄSQLÓï¾ä¼°´ó±í²Ù×÷µÄÓÅ»¯ ¶þ¡¢ORACLEÊý¾Ý¿âÓÅ»¯·½°¸ 1¡¢ÄÚ´æµÈOracleϵͳ²ÎÊýÅäÖà 2¡¢Ê ......

oracleѧϰ±Ê¼Ç2 ±íµÄ»ù±¾²Ù×÷

Oracle±íµÄ¹ÜÀí
±íÃûºÍÁÐÃûµÄÃüÃû¹æÔò£º
1±ØÐëÒÔ×Öĸ¿ªÍ·
2³¤¶È²»Äܳ¬¹ý30¸ö×Ö·û
3²»ÄÜʹÓÃOracleµÄ±£Áô×Ö
4Ö»ÄÜʹÓÃÈçÏÂ×Ö·û£ºA-Z,a-z,0-9,$,#µÈ
OracleÖ§³ÖµÄÊý¾ÝÀàÐÍ£º
1char ¶¨³¤£¬×î´ó2000×Ö·û
Àý×Ó£ºchar(10) ‘Ïþ»Ô’ ǰËĸö×Ö·û·Å’Ïþ»Ô’£¬ºóÌíÁù¸ö¿Õ¸ñ²¹È«
2varchar2(20) ±ä³¤£¬×î´ ......

oracle HINTS µÄʹÓÃ

Õª×ÔÐìÓñ½ðµÄ<<sqlÐÔÄܵĵ÷Õû-×ܽá>>
ÈçºÎʹÓÃhints:
HintsÖ»Ó¦ÓÃÔÚËüÃÇËùÔÚsqlÓï¾ä¿é(statement block£¬ÓÉselect¡¢update¡¢delete¹Ø¼ü×Ö±êʶ)ÉÏ£¬¶ÔÆäËüSQLÓï¾ä»òÓï¾äµÄÆäËü²¿·ÖûÓÐÓ°Ïì¡£È磺¶ÔÓÚʹÓÃunion²Ù×÷µÄ2¸ösqlÓï¾ä£¬Èç¹ûÖ»ÔÚÒ»¸ösqlÓï¾äÉÏÓÐhints£¬Ôò¸Ãhints²»»áÓ°ÏìÁíÒ»¸ösqlÓï¾ä¡£
ÎÒÃÇ¿ÉÒÔÊ ......

OracleµÄͬÒå´Ê£¨synonyms£©×ܽá

oracleµÄͬÒå´Ê×ܽ᣺
¡¡¡¡´Ó×ÖÃæÉÏÀí½â¾ÍÊDZðÃûµÄÒâ˼£¬ºÍÊÔͼµÄ¹¦ÄÜÀàËÆ¡£¾ÍÊÇÒ»ÖÖÓ³Éä¹ØÏµ¡£
¡¡¡¡1.´´½¨Í¬Òå´ÊÓï¾ä£º
¡¡¡¡create public synonym table_name for user.table_name;
¡¡¡¡ÆäÖеÚÒ»¸öuser_tableºÍµÚ¶þ¸öuser_table¿ÉÒÔ²»Ò»Ñù¡£
¡¡¡¡´ËÍâÈç¹ûÒª´´½¨Ò»¸öÔ¶³ÌµÄÊý¾Ý¿âÉϵÄijÕűí ......

ORACLEÁ¬½Ó×Ö·û´®µÄд·¨

½ñÌìÉÏÎç²âÊÔÒ»¸ö·ÃÎÊORACLEµÄc++À࣬ÎĵµÉÏ˵Á¬½Ó×Ö·û´®µÄ¸ñʽΪ"Óû§Ãû/¿ÚÁî@Á¬½ÓÃû"£¬ÎÒ²»ÊÇÌ«Ã÷°×Á¬½ÓÃûµ½µ×ΪºÎÎÏÈÓÃIPµØÖ·ÊÔÁËÊÔ
£¬×ÜÊDZ¨´í£¬ËµÎÞ·¨½âÎöµÄÁ¬½Ó±êʶ·û£¬ºóÀ´ÔÚÍøÉϲéÁ˰ëÌ죬¿´µ½ÓиöÈË˵Á¬½ÓÃû¾ÍÊÇ$(ORACLE_HOME)/network/admin/tnsnames.oraÀﶨÒåµÄÊý¾Ý¿âÁ¬½ÓµÄÃû³Æ£¬ÊÔÁËһϣ¬¹ûÈ»Èç´Ë¡£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ