±±´óÇàÄñoracleѧϰ±Ê¼Ç19 20 21 22
Óαê
Ö¸ÏòÉÏÏÂÎÄÇøÓòµÄ¾ä±ú»òÖ¸Õë
ÓαêÔÚ·þÎñÆ÷¶Î´æ´¢
ÊôÐÔ
%NOTFOUND ûÓÐÕÒµ½½á¹û»òûÓвÙ×÷³É¹¦
%FOUND ÕÒµ½½á¹û»ò²Ù×÷³É¹¦
%ROWCOUNT ÓαêÓ°ÏìµÄÐÐÊý
%ISOPEN ÓαêÊÇ·ñ´ò¿ª ÒþʽÓαêϵͳ×Ô¶¯Î¬»¤£¬ÓÀԶΪ¼Ù
ÀàÐÍ£º
¾²Ì¬Óαê
-ÒþʽÓαê
ÔÚoracleÄÚ²¿ÉùÃ÷
ÓÃÓÚ´¦ÀíDMLÓï¾äºÍ·µ»Øµ¥ÐеIJéѯ
SQLΪÒþʽÓαêĬÈÏÃû³Æ£¬Àý£º
begin
insert into student values('3','test','m',sysdate);
dbms_output.put_line('ÓαêÓ°ÏìµÄÐÐÊý£º'||SQL%ROWCOUNT);
end;
-ÏÔʽÓαê
ÓÉÓû§ÏÔʾÉùÃ÷
ÓαêÖ¸Ïò»î¶¯¼¯µÄµ±Ç°ÐÐ
¿ØÖÆÏÔʾÓαê
Open ´ò¿ªÓαê
Fetch … into …
Close ¹Ø±ÕÓαê
declare
cursor stuCur is select * from student;
stuRow student%rowtype;
begin
open stuCur;
loop
fetch stuCur into sturow;
exit when stuCur%NotFound;
dbms_output.put_line(sturow.stu_name);
dbms_output.put_line(stuCur%RowCount);
end loop;
close stuCur;
end;
REFÓαê(¶¯Ì¬Óαê)
ÔÚÔËÐÐʱʹ²»Í¬µÄÓï¾äÓëÖ®¹ØÁª
REFÓαêʹÓÃÓαê±äÁ¿
Óαê±äÁ¿£ºÒ»ÖÖÒýÓÃÀàÐÍ£¬¿ÉÒÔÔÚÔËÐÐʱָÏò²»Í¬µÄ´æ´¢Î»Öã¬closeÓï¾ä¹Ø±ÕÓα겢ÊÍ·ÅÓÃÓÚ²éѯµÄ×ÊÔ´¡£
ÀàÐÍ£º
ÓÐÔ¼ÊøµÄÓαê±äÁ¿£º¾ßÓзµ»ØÀàÐÍ ¶¨ÒåÓαêʱ¼ÓÉÏreturn ÓαêÀàÐÍ
declare
type RefstuCur is ref cursor return stu%rowtype;
stuCur RefstuCur;
sturow student%rowtype;
flag int :=0;
begin
flag := &flag;
if flag = 0 then
open stucur for select * from student where stu_id <= '2';
else
open st
Ïà¹ØÎĵµ£º
in/not inÔÚÅжÏNULLʱÓõÄÓë=/<>Ò»ÑùµÄ·½Ê½£¬¼´±ØÐëÓÃis nullÀ´Åжϣ¬·ñÔòʼÖÕΪʧ°Ü¡£
Óï¾ä
select 'true' from dual where (1,2) not in ((2,3),(2,null));
³É¹¦µÄÔÒòÔÚÓÚÅж϶þÔªÖµÊ±Ê ......
oracleÀïµÄextendµÄÒâ˼
À©Õ¹ÒÑÖªµÄÊý×é¿Õ¼ä£¬Àý£º
DECLARE
TYPE CourseList IS TABLE OF VARCHAR2(10);
courses CourseList;
BEGIN
-- ³õʼ»¯Êý×éÔªËØ£¬´óСΪ3
courses := CourseList( 'Biol 4412 ', 'Psyc 3112 ', 'Anth 3001 ');
-- ΪÊý×éÔö¼ÓÒ»¸öÔªËØ£¬Êý×é´óСΪ4£¬Ä©Î²µÄÔªËØÎªNULL
courses.EXTEN ......
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
¸ø³öÕûÊý,·µ»Ø¶ÔÓ¦µÄ×Ö·û;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- ......
SQLÖеĵ¥¼Ç¼º¯Êý
1.ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO &nbs ......