Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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Êý¾Ý¿â×Ô´øµÄDBMS_JOB¹¦ÄÜ¿ÉÒÔʵÏÖ¶¨Ê±Ö´ÐÐPL/SQLµÄ´æ´¢¹ý³Ì£¬µ«ÊÇÈç¹ûSQLÓï¾äºÜ¸´ÔÓ£¬
        SQLÓï¾äºÜ¶à£¬ÒÔ¼°¾­³£Òª¸Ä±äSQLÓï¾äµÄд·¨£¬ÓÃдPL/SQL´æ´¢¹ý³ÌµÄ·½·¨ÔÙ¶¨Ê±Ö´Ðлá±È½Ï·±Ëö¡£ºÎ
        ¿ö»¹ÓÐһЩUNIXϵͳ¹ÜÀíÔ±²»»áдPL/SQL´æ´¢¹ý³Ì£¬ËùÒÔÎÒ½éÉ ......

ORACLE Oracle·ÖÎöº¯ÊýÏêÊö¡¾¶þ¡¿

Ò».·ÖÎöº¯Êý2(rank\dense_rank\row_number)
Ŀ¼
===============================================
1.ʹÓÃrownumΪ¼Ç¼ÅÅÃû
2.ʹÓ÷ÖÎöº¯ÊýÀ´Îª¼Ç¼ÅÅÃû
3.ʹÓ÷ÖÎöº¯ÊýΪ¼Ç¼½øÐзÖ×éÅÅÃû
Ò»¡¢Ê¹ÓÃrownumΪ¼Ç¼ÅÅÃû£º
ÔÚÇ°ÃæÒ»Æª¡¶Oracle¿ª·¢×¨ÌâÖ®£º·ÖÎöº¯Êý¡·£¬ÎÒÃÇÈÏʶÁË·ÖÎöº¯ÊýµÄ»ù±¾Ó¦Óã¬ÏÖÔÚÎÒÃÇÔÙ ......

oracle¡¢proxool¡¢hibernateʹÓÃ×ܽá

¿ªÊ¼ÔÚmyeclipse6.5ÖÐDB BROWERн¨ÁËÒ»¸öÊý¾Ý¿âÁ¬½Ó£¬Èçͼ£º
Ò»Á¬½Ó£¬±¨³öÁËÁ½¸ö´íÎó£º
1. ORA-00604 error occurred at recursive SQL level string.
2.ORA-12705: invalid or unknown NLS parameter value.
²é×ÊÁϺó½â¾ö£¨ÆÚ¼äÎÒ»¹¸Ä¹ýtestÓû§µÄÁ¬½ÓȨÏÞ£©£º
½«MyEclipseÖÐeclipseĿ¼ÏµÄeclipse.iniÎļþ£¬° ......

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

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