µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

plSqlÃæÊÔÌâ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/11/26 5:15:08 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

PL/SQLÃæÊÔÌâ 2010-04-29 14:25

Ò»¡¢ Çó1-100Ö®¼äµÄËØÊý

as i number; j number; is_prim boolean; begin

dbms_output.new_line;

dbms_output.put(to_char(2)||' '); for i in 3..inp loop begin

is_prim:=true;

for j in 2..trunc(sqrt(i)) loop if mod(i,j)=0 then begin

is_prim:=false; exit; end; end if; end loop;

if is_prim then dbms_output.put(to_char(i)||' '); end if; end; end loop;

dbms_output.new_line; end; /

exec is_prime(100)

set serverout on

create or replace procedure is_prime(inp number)

¶þ¡¢ ¶ÔËùÓÐÔ±¹¤,Èç¹û¸ÃÔ±¹¤Ö°Î»ÊÇMANAGER£¬²¢ÇÒÔÚDALLAS¹¤×÷ÄÇô¾Í¸øËûн½ð¼Ó15£¥£»Èç¹û¸ÃÔ±¹¤Ö°Î»ÊÇCLERK£¬²¢ÇÒÔÚNEW YORK¹¤×÷ÄÇô¾Í¸øËûн½ð¿Û³ý5£¥;ÆäËûÇé¿ö²»×÷´¦Àí

Èý¡¢¶ÔÖ±½ÓÉϼ¶ÊÇ'BLAKE'µÄËùÓÐÔ±¹¤£¬°´Õղμӹ¤×÷µÄʱ¼ä¼Óн£º 81Äê6ÔÂÒÔǰµÄ¼Óн10£¥ 81Äê6ÔÂÒÔºóµÄ¼Óн5£¥

Èý¡¢ ¸ù¾ÝÔ±¹¤ÔÚ¸÷×Ô²¿ÃÅÖеŤ×ʸߵÍÅųöÔÚ²¿ÃÅÖеÄÃû´Î(ÔÊÐí²¢ÁÐ).

ËÄ¡¢±àдһ¸ö´¥·¢Æ÷ʵÏÖÈçϹ¦ÄÜ£º ¶ÔÐÞ¸ÄÖ°¹¤Ð½½ðµÄ²Ù×÷½øÐкϷ¨ÐÔ¼ì²é£º

ËÄ¡¢ ±àдһ¸öPL/SQL³ÌÐò¿é£¬¶ÔÃû×ÖÒÔ\»ò\¿ªÊ¼µÄËùÓйÍÔ±°´ËûÃǵĻù±¾Ð½Ë®µÄ10%¼Óн¡£

Îå¡¢±àдһPL/SQL£¬¶ÔËùÓеÄ\ÏúÊÛÔ±\Ôö¼ÓÓ¶½ð500.

Áù¡¢±àдһPL/SQL£¬ÒÔÌáÉýÁ½¸ö×ʸñ×îÀϵÄ\Ö°Ô±\Ϊ\¸ß¼¶Ö°Ô±\¡££¨¹¤×÷ʱ¼äÔ½³¤£¬ÓÅÏȼ¶Ô½¸ß£© Æß¡¢±àдһPL/SQL£¬¶ÔËùÓйÍÔ±°´ËûÃÇ»ù±¾Ð½Ë®µÄ10%¼Óн£¬Èç¹ûËùÔö¼ÓµÄнˮ´óÓÚ5000£¬ÔòÈ¡Ïû¼Óн¡£

°Ë¡¢ÏÔʾEMPÖеĵÚËÄÌõ¼Ç¼¡£

¾Å¡¢.±àдһ¸ö¸øÌØÊâ¹ÍÔ±¼Óн10%µÄ¹ý³Ì£¬ÕâÖ®ºó£¬¼ì²éÈç¹ûÒѾ­¹ÍÓ¶¸Ã¹ÍÔ±³¬¹ý60¸öÔ£¬Ôò¸øËû¶îÍâ¼Óн3000.

Ê®¡¢±àдһ¸öº¯ÊýÒÔ¼ì²éËùÖ¸¶¨¹ÍÔ±µÄнˮÊÇ·ñÓÐЧ·¶Î§ÄÚ¡£²»Í¬Ö°Î»µÄнˮ·¶Î§Îª£º

Ê®¶þ¡¢ÓÐÈçÏÂMyTable: ÈÕÆÚ ÈÕ²ú 1 3.3333 2 4.2222 3 1.5555 4 9.8888 5 ¡­¡­¡­

ÒªÇóÓÃSQLÓï¾äÉú³ÉÈçϲéѯ ÈÕÆÚÈÕ²ú ÀÛ¼ÆÈÕ²ú 1 3.3333 3.3333 2 4.2222 7.5555 3 1.5555 9.0000 4 9.8888 18.8888 5¡­¡­¡­

Ê®Èý¡¢´´½¨Ò»¸öÐòÁУ¬µÚÒ»´Î´Ó5Ñ­»·µ½10£¬ÒÔºóÔÙ´Ó0¿ªÊ¼Ñ­»·

Ò»¡¢ Çó1-100Ö®¼äµÄËØÊý declare

fag boolean:=true; begin

for i in 1..100 loop for j in 2..i-1 loop if mod(i,j)=0 then fag:=false; end if; end loop; if fag then

dbms_output.put_line(i); end if; fag:=true; end loop; end;

¶þ¡¢ ¶ÔËùÓÐÔ±¹¤,Èç¹û¸ÃÔ±¹¤Ö°Î»ÊÇMANAGER£¬²¢ÇÒÔÚDALLAS¹¤×÷ÄÇô¾Í¸øËûн½ð¼Ó15£¥£»Èç¹û¸ÃÔ±¹¤Ö°Î»ÊÇCLERK£¬²¢ÇÒÔÚNEW YORK¹¤×÷ÄÇô¾Í¸øËûн½ð¿Û³ý5£¥;ÆäËûÇé¿ö²»×÷´¦Àí declare

cursor c1 is select * from emp; c1rec c1%rowtype; v_loc varchar2(20); begin

for c1rec in c1 loop

select loc into v_loc from dept where deptno = c1rec.deptno; if c1rec.job = 'MANAGER' and v_loc = 'DALLAS' then

update emp set sal = sal * 1.15 where empno = c1rec.empno;

elsif c1rec.job='CLERK' and v_loc = 'NEW YORK' then

update emp set sal = sal * 0.95 where empno = c1rec.empno; else null; end if; end loop; end;

Èý¡¢¶ÔÖ±½ÓÉϼ¶ÊÇ'BLAKE'µÄËùÓÐÔ±¹¤£¬°´Õղμӹ¤×÷µÄʱ¼ä¼Óн£º 81Äê6ÔÂÒÔǰµÄ¼Óн10£¥ 81Äê6ÔÂÒÔºóµÄ¼Óн5£¥ declare

cursor c1 is select * from emp where mgr = (select

empno from emp where ename='BLAKE'); --Ö±½ÓÉϼ¶ÊÇ'BLAKE'µÄËùÓÐÔ±¹¤ c1rec c1%rowtype; begin

for c1rec in c1 loop

if c1rec.hiredate < '01-6ÔÂ-81' then

update emp set sal = sal * 1.1 where empno = c1rec.empno; else

update emp set sal = sal * 1.05 where empno = c1rec.empno; end if; end loop; end;

Èý¡¢ ¸ù¾ÝÔ±¹¤ÔÚ¸÷×Ô²¿ÃÅÖеŤ×ʸߵÍÅųöÔÚ²¿ÃÅÖеÄÃû´Î(ÔÊÐí²¢ÁÐ). <1> Ò»ÌõSQLÓï¾ä

select deptno,ename,sal,(select count(*) + 1 from emp where deptno = a.deptno and sal > a.sal) as ord from emp a

order by deptno,sal desc;

<2> PL/SQL¿é declare cursor cc is

select * from dept; ccrec cc%rowtype;

cursor ck(no number) is

select * from emp where deptno = no order by sal desc;

ckrec ck%rowtype;

i number;

ËÑË÷¸ü¶à¹ØÓÚ£º plSqlÃæÊÔÌâ µÄÎĵµ
plSqlÃæÊÔÌâ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c3kozu3deqj4c2db006b9_1.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©

Ïà¹ØÍÆ¼ö£º

ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top