OracleÓαêʵÓÃ
declare
sqlstring varchar2(100);
emprow emp_bak%rowtype;
myno emp_bak.empno%type;
begin
--sqlstring:='create table emp_bak as select * from emp';
sqlstring:='select * from emp_bak where empno=:myno and sal>:mysal';
myno:='&ÇëÊäÈëÔ±¹¤±àºÅ';
--¶¯Ì¬SQL
execute immediate sqlstring into emprow using myno,3001 ;
dbms_output.put_line(emprow.sal);
exception
when no_data_found then
dbms_output.put_line('ÊäÈëµÄÔ±¹¤±àºÅ²»´æÔÚ');
end;
select * from emp_bak
--ÒþÊ¿Óαê ÓαêÃû×Ö SQL
--ÒþʽÓαê ÊÇoracle ϵͳ×Ô¶¯ÔÚÔËÐÐDMLÓï¾äµÄʱºò Éú³ÉµÄ¡£ Ëû×Ô¶¯´ò¿ª ×Ô¶¯¹Ø±Õ¡£
-- Ò»°ãÇé¿öÏ ¸ÃÓÎ±ê ¶ÔÓÚ³ÌÐòÔ±À´Ëµ ÊÇ͸Ã÷µÄ
declare
begin
update emp_bak set sal = 2500 where empno = 8888;
--Êä³öÒþÊ¿ÓαêÖеÄÒ»¸öÊôÐÔ %rowcount ¾ÍÊÇÓ°ÏìµÄÐÐÊý
dbms_output.put_line(sql%rowcount);
end;
-- %ISOPEN - ÓαêÊÇ·ñ´ò¿ª ²¼¶ûÖµ
-- %noopen ûÓÐÕâ¸öÊôÐÔ£¡£¡
-- %FOUND – ÓαêÖÐÊÇ·ñ»¹ÓÐÊý¾Ý
-- %NOTFOUND – ÓαêÖÐÊÇ·ñ»¹ÓÐÊý¾Ý
-- %ROWCOUNT – SQL Óï¾äÓ°ÏìµÄÐÐÊý
-- CURSOR Óαê
--ÏÔʽÓαê ÓгÌÐòÔ±×Ô¼º¶¨ÒåÓαê ×Ô¼º¶¨Òå ×Ô¼ºÊ¹ÓÃ
--ÓαêҪʹÓõϰ ²½Öè 1 ¶¨Òå 2 ´ò¿ª 3 ʹÓã¨Ñ»·£© 4 ¹Ø±ÕÓαê
declare
--`1 ¶¨ÒåÓαê
cursor mycursor is select ename,sal from emp_bak;
emprow emp_bak%rowtype;
begin
-- 2 ´ò¿ªÓαê
open mycursor;
-- 3 ʹÓÃÓαê
loop
-- ÓαêÖеÄÊý¾Ý ÊÇͨ¹ý¹Ø¼ü×Ö ÌáÈ¡ fetch
fetch mycursor into emprow.ename,emprow.sal; -- 1 ÌáÈ¡Êý¾Ý 2 ²¢ÇÒ¸ÃÓαê»áÖ¸ÏòÏÂÒ»ÐÐ
if(emprow.sal >2000 and emprow.sal<3000) then
dbms_output.put_line(emprow.ename||' '|| emprow.sal);
end if;
-- dbms_output.put_line(emprow.ename||' '|| emprow.sal);
exit when mycursor%NOTFOUND; --2 ʹÓÃÓαêµÄ%NOTFOUNDÊôÐÔ¼ì²âÓαêÊÇ·ñ»¹ÓÐÊý¾Ý Èç¹ûûÓÐÁË ÄÇô¾ÍÍ˳öÑ»·£¡£¡
end loop;
-- ¹Ø±ÕÓαê
close mycursor;
end;
--¼òµ¥Ð´·¨ Ñ»·Óαê
declare
--`1 ¶¨ÒåÓαê
cursor mycursor is select ename,
Ïà¹ØÎĵµ£º
ÈçºÎÓ¦¶ÔORACLEÊý¾Ý¿âµÄ²¿·ÖÃæÊÔÌâÄ¿
1. ½âÊÍÀ䱸·ÝºÍÈȱ¸·ÝµÄ²»Í¬µãÒÔ¼°¸÷×ÔµÄÓŵã
½â´ð:Èȱ¸·ÝÕë¶Ô¹éµµÄ£Ê½µÄÊý¾Ý¿â£¬ÔÚÊý¾Ý¿âÈԾɴ¦ÓÚ¹¤×÷״̬ʱ½øÐб¸·Ý¡£¶øÀ䱸·ÝÖ¸ÔÚÊý¾Ý¿â¹Ø±Õºó£¬½øÐб¸·Ý£¬ÊÊÓÃÓÚËùÓÐģʽµÄÊý¾Ý¿â¡£Èȱ¸·ÝµÄÓŵãÔÚÓÚµ±±¸·Ýʱ£¬Êý¾Ý¿âÈԾɿÉÒÔ±»Ê¹Óò¢ÇÒ¿ÉÒÔ½«Êý¾Ý¿â»Ö¸´µ½ÈÎÒâÒ»¸öʱ¼äµã¡£À䱸· ......
ÓÐÁËÓα꣬¾Í¿ÉÒÔ²»ÓÃÿÌõÊý¾ÝÈ¥¼ì²éÊÇ·ñ·ûºÏÌõ¼þ£¬ÏÈ¿´Ò»ÏÂÏÂÃæµÄ£º
--ÓαêʹÓã¨ÓαêÆäʵÊÇÒ»¸ö·ÅÈëÄÚ´æÁÙʱ±í£©
declare
money cms3_simcard.card_fee%type :=0; --¶¨ÒåÓë±í×Ö¶ÎÏàͬÀàÐÍ
cursor mycursor is --¶¨ÒåÓαê
select ......
ǰÌì×°ºÃµÄ£Ï£ò£á£ã£ì£å£¬×òÌìͻȻ²»ºÃÓÃÁË£¬´ÓOracleµÄ´íÎóÌáʾÀ´¿´,ÊÇ˵TNS:no listener £¬¹À¼ÆÊÇijÖÖ·þÎñûÓÐÆô¶¯£¬´ò¿ªwindows¹ÜÀí¹¤¾ß->·þÎñ£¬Ò»¿´£¬ÓÐÒ»¸öOracleOraHome90TNSListenerÕâÑùµÄ·þÎñ£¬ºÍ´íÎóÐÅÏ¢ÌâÊÇÒ»Ö£¬»ù±¾¾Í¿ÉÒԿ϶¨ÊÇÕâ¸ö·þÎñËùÒý·¢µÄÎÊÌâ¡£ÔÙÒ»¿´£¬¸Ã·þÎñûÓÐÆô¶¯£¬ËìÊÖ¹¤Æô¶¯£¬Ë¢ÐºóÒ»¿´£¬¸Ã· ......
¶ÔÓÚ Oracle µÄ rownum ÎÊÌ⣬ºÜ¶à×ÊÁ϶¼Ëµ²»Ö§³Ö>,>=,=,between...and£¬Ö»ÄÜÓÃÒÔÉÏ·ûºÅ(<¡¢<=¡¢!=)£¬²¢·Ç˵ÓÃ>,>=,=,between..and ʱ»áÌáʾSQLÓï·¨´íÎ󣬶øÊǾ³£ÊDz鲻³öÒ»Ìõ¼Ç¼À´£¬»¹»á³öÏÖËÆºõÊÇĪÃûÆäÃîµÄ½á¹ûÀ´£¬ÆäʵÄúÖ»ÒªÀí½âºÃÁËÕâ¸ö rownum αÁеÄÒâÒå¾Í²»Ó¦¸Ã¸Ðµ½¾ªÆæ£ ......
¡¡¡¡1¡¢Òì³£µÄÓŵã
¡¡¡¡
¡¡¡¡Èç¹ûûÓÐÒì³££¬ÔÚ³ÌÐòÖУ¬Ó¦µ±¼ì²éÿ¸öÃüÁîµÄ³É¹¦»¹ÊÇʧ°Ü£¬Èç
¡¡¡¡BEGIN
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ error
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ error
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ err ......