OracleÓαêʹÓÃ×ܽá
Óα꣨CURSOR£©Ò²½Ð¹â±ê£¬ÔÚ¹ØÏµÊý¾Ý¿âÖо³£Ê¹Óã¬ÔÚPL/SQL³ÌÐòÖпÉÒÔÓÃCURSORÓëSELECTÒ»Æð¶Ô±í»òÕßÊÓͼ
ÖеÄÊý¾Ý½øÐвéѯ²¢ÖðÐжÁÈ¡¡£
OracleÓαê·ÖΪÏÔʾÓαêºÍÒþʽÓαꡣ
ÏÔʾÓα꣨Explicit Cursor£©:ÔÚPL/SQL³ÌÐòÖж¨ÒåµÄ¡¢ÓÃÓÚ²éѯµÄÓÎ±ê³Æ×÷ÏÔʾÓαꡣ
ÒþʽÓα꣨Implicit Cursor£©:ÊÇÖ¸·ÇPL/SQL³ÌÐòÖж¨ÒåµÄ¡¢¶øÇÒÊÇÔÚPL/SQLÖÐʹÓÃUPDATE/DELETEÓï¾äʱ£¬Oracleϵͳ×Ô¶¯·ÖÅäµÄÓαꡣ
Ò».ÏÔʾÓαê
1.ʹÓò½Öè
(1)¶¨Òå (2)´ò¿ª (3)ʹÓà (4)¹Ø±Õ
2.ʹÓÃÑÝʾ
Ê×ÏÈ´´½¨²âÊÔÓñíSTUDENT£¬½Å±¾ÈçÏ£º
CREATE TABLE "STUDENT" (
"STUNAME" VARCHAR2(10 BYTE),
"STUNO" VARCHAR2(4 BYTE),
"AGE" NUMBER,
"GENDER" VARCHAR2(2 CHAR)
)
(1).ʹÓÃWHILEÑ»·´¦ÀíÓαê
create or replace PROCEDURE PROC_STU1 AS
BEGIN
--ÏÔʾÓαêʹÓã¬Ê¹ÓÃwhileÑ»·
declare
--1.¶¨ÒåÓα꣬Ãû³ÆÎªcur_stu
cursor cur_stu is
select stuno,stuname from student order by stuno;
--¶¨Òå±äÁ¿£¬´æ·ÅÓαêÈ¡³öµÄÊý¾Ý
v_stuno varchar(4);
v_stuname varchar(20);
begin
--2.´ò¿ªÓαêcur_stu
open cur_stu;
--3.½«ÓαêµÄµ±Ç°ÐÐÈ¡³ö´æ·Åµ½±äÁ¿ÖÐ
fetch cur_stu into v_stuno,v_stuname;
while cur_stu%found --ÓαêËùÖ¸»¹ÓÐÊý¾ÝÐУ¬Ôò¼ÌÐøÑ»·
loop
--´òÓ¡½á¹û
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
--¼ÌÐø½«ÓαêËùÖ¸µÄµ±Ç°ÐÐÈ¡³ö·Åµ½±äÁ¿ÖÐ
fetch cur_stu into v_stuno,v_stuname;
end loop;
close cur_stu; --4.¹Ø±ÕÓ
Ïà¹ØÎĵµ£º
1¡¢´´½¨±í£º
create table stud(
sid int,
sname varchar2(50)
)
²¢²åÈëÒ»ÌõÊý¾Ý
&n ......
1¡¢´´½¨±í£º
create table stud(
sid int,
sname varchar2(50)
)
²¢²åÈëÒ»ÌõÊý¾Ý
&n ......
begin
for item in (select * from user_constraints a where a.constraint_type = 'R') loop
execute immediate 'alter table ' || item.table_name || ' disable constraint ' || item.constraint_name;
end loop;
end;
/ ......
OracleÓëMySQLÖГ¿É´®Ðл¯”µÄ¶Ô±È²âÊÔ
Thomas Kyte ÔÚ“Oracle 9i&10g±à³ÌÒÕÊõ”Ò»ÊéÖÐΪÁË˵Ã÷ÊÂÎñµÄ¸ôÀë¼¶±ð£¬ÌṩÁËһЩÀý×Ó¡£ÕâÀïÎÒÃÇÀ´¿´¿´“¿É´®Ðл¯”¼¶±ðϵıíÏÖ¡£
ÒÔÆÕͨÓû§µÇ¼ϵͳ£¬²¢´´½¨²âÊÔÓÃµÄ±í¡£
idle> connect scott/tiger
......
ÏîÄ¿ÖÐÓÐÉæ¼°´æ´¢¹ý³Ì¶Ô×Ö·û´®µÄ´¦Àí£¬ËùÒԾͽ«ÔÚÍøÉϲéÕÒµ½µÄ×ÊÁÏ»ã×Ü£¬×öÒ»¸öÐÅϢƴ½ÓʽµÄ×ܽᡣ
ÒÔÏÂÐÅÏ¢¾ùÀ´×Ô»¥ÁªÍø£¬Ìù³öÀ´Ò»Ôò×Ô¼º±£´æÒÔ´ýÒÔºóʹÓã¬Ò»Ôò¹©´ó¼Ò·ÖÏí¡£
×Ö·ûº¯Êý——·µ»Ø×Ö·ûÖµ
ÕâЩº¯ÊýÈ«¶¼½ÓÊÕµÄÊÇ×Ö·û×åÀàÐ͵IJÎÊý(CHR³ýÍâ)²¢ÇÒ·µ»Ø×Ö·ûÖµ.
³ýÁËÌØ±ð˵Ã÷µÄÖ®Íâ,ÕâЩº¯Êý´ó²¿·Ö·µ» ......