OCPÈÏÖ¤¿¼ÊÔÖ¸ÄÏ£¨10£©£ºÊ¹ÓÃPL/SQL½øÐÐOracle±à³Ì
1¡¢±à³ÌÓïÑÔÓëOracleÊý¾Ý¿â
1.1¡¢´æ´¢µÄÓëÄäÃûµÄPL/SQL³ÌÐò¿é
Óë´æ´¢µÄPL/SQL³ÌÐò¿éÏà±È£¬ÄäÃûµÄPL/SQL³ÌÐò¿éЧÂʽϵͣ¬´ËÍâÓÉÓÚ¿ÉÄÜÔÚ¶ą̀»úÆ÷Öй«²¼Ô´´úÂ룬»¹»áÒý·¢¹ÜÀíÎÊÌâ¡£
1.2¡¢PL/SQL¶ÔÏó
PL/SQL¶ÔÏó¾ßÓÐÏÂÁÐ5ÖÖÀàÐÍ£º
¹ý³Ì
º¯Êý
³ÌÐò°ü
³ÌÐò°üÖ÷Ìå
´¥·¢Æ÷
2¡¢¹ý³Ì¡¢º¯ÊýÒÔ¼°³ÌÐò°ü
2.1¡¢¹ý³ÌÓ뺯Êý
¹ý³Ì£¨Procedure£©ÊÇÒ»¸öÖ´ÐÐijЩ¶¯×÷µÄ´úÂë¿é¡£ÒªÔËÐÐÒ»¸ö¹ý³Ì£¬¼È¿ÉÒÔÔÚPL/SQL³ÌÐò¿éÄÚ²¿µ÷ÓÃÕâ¸ö¹ý³Ì£¬Ò²¿ÉÒÔʹÓý»»¥Ê½µÄEXECUTEÃüÁî¡£
º¯Êý£¨Function£©Óë¹ý³ÌµÄ¸ÅÄîÏàËÆ£¬µ«²¢²»¾ßÓÐOUTÐÍʵ²Î£¬²¢ÇÒÎÞ·¨Ê¹ÓÃEXECUTEÃüÁîÀ´µ÷Ó᣺¯ÊýÓ¦µ±Í¨¹ýRETURN·µ»ØÒ»¸öÖµ¡£
Èç¹ûʹÓõÄÊÇCREATEÃüÁî¶ø²»ÊÇCREATE OR REPLACEÃüÁÄÇôÔÚÖ¸¶¨¶ÔÏóÒÑ´æÔÚµÄÇé¿öϱØÐëÏÈɾ³ýÕâ¸ö¶ÔÏó¡£
º¯Êý£º
?[Copy to clipboard]View Code PLSQL
SQL> create or replace function odd_even(v1 number)
2 return varchar2
3 as
4 begin
5 if
6 mod(v1,2) = 0
7 then
8 return 'even';
9 else
10 return 'odd';
11 end if;
12 end odd_even;
13 /
Function created.
SQL> select odd_even(8) from dual;
ODD_EVEN(8)
-------------------------------------------------------------------
even
SQL> select odd_even(9) from dual;
ODD_EVEN(9)
-------------------------------------------------------------------
odd
¹ý³Ì£º
?[Copy to clipboard]View Code PLSQL
SQL> conn system/oracle
Connected.
SQL> create table integers (
2 C1 number(2),
3 C2 varchar2(5));
Table created.
SQL> create or replace procedure ins_ints(v1 in number)
2 as
3 begin
4 for i in 1..v1 loop
5 insert into integers values (i, odd_even(i));
6 end loop;
7 end ins_ints;
8 /
Procedure created.
SQL> execute ins_ints(5);
PL/SQL procedure successfully completed.
SQL> select * from integers;
C1 C2
---------- -----
1 odd
2 even
3 odd
4 even
5 odd
2.2¡¢³ÌÐò°ü
³ÌÐò°ü£¨Package£©Óɹ淶ºÍÖ÷ÌåÁ½¸ö¶ÔÏó×é³É¡£
ʹÓÃCREATE PACKAGEÃü
Ïà¹ØÎĵµ£º
1. ²é¿´ÃÜÂëÎļþÖеijÉÔ±£º
¿ÉÒÔͨ¹ý²éѯÊÓͼV$PWFILE_USERSÀ´»ñÈ¡ÓµÓÐSYSOPER/SYSDBAϵͳȨÏÞµÄÓû§µÄÐÅÏ¢£¬±íÖÐSYSOPER/SYSDBAÁеÄÈ¡ÖµTRUE/FALSE±íʾ´ËÓû§ÊÇ·ñÓµÓÐÏàÓ¦µÄȨÏÞ¡£ÕâЩÓû§Ò²¾ÍÊÇÏàÓ¦µØ´æÔÚÓÚÃÜÂëÎļþÖеijÉÔ±¡£
2. À©Õ¹ÃÜÂëÎļþµÄÓû§ÊýÁ¿£º
µ±ÏòOracleÊý¾Ý¿âÃÜÂëÎļþÌí¼ÓµÄÕʺÅÊýÄ¿³¬¹ý´´½¨ÃÜÂëÎļþʱ ......
declare @p int
declare @p1 int
declare @count int
set @p=0
set @p1=10
set @count=2
if(@count<>0 or @count<>1)
set @p=@p1*@count-10
SELECT [t1].[userid], [t1].[username], [t1].[userorder]
from (
SELECT ROW_NUMBER() OVER (ORDER BY [t0].[userorder]) AS [ROW_NU ......
×î½üÓöµ½Ò»¸öÏîÄ¿£¬¿Í»§ÔÚ×ܲ¿Â¼ÈëÐÅÏ¢ºó£¬Êý¾ÝÐèҪͬ²½µ½ÏÂÊôµÄÈô¸É¸ö×ÓϵͳÖС£ÏÖÔÚ×ܲ¿µ¥¶ÀʹÓÃÒ»¸öÊý¾Ý¿â£¬ÏÂÊôµ¥Î»¸÷×ÔʹÓÃ×Ô¼ºµÄÊý¾Ý¿â¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬Ïëµ½Á˼¸¸ö½â¾ö·½°¸£º
1¡¢×Ô¼ºÐ´´úÂë½â¾ö¡£¶¨ÒåºÃ·ÃÎÊÿ¸öÊý¾ ......
SQLÓÅ»¯²éѯ
ÊÕ²Ø
Êý¾Ý¿âµÄ²éѯÓÅ»¯¼¼Êõ
Êý¾Ý¿âϵͳÊǹÜÀíÐÅϢϵͳµÄºËÐÄ£¬»ùÓÚÊý¾Ý¿âµÄÁª»úÊÂÎñ´¦Àí£¨OLTP£©ÒÔ¼°Áª»ú·ÖÎö´¦Àí(OLAP)ÊÇÒøÐС¢ÆóÒµ¡¢Õþ¸®µÈ²¿ÃÅ×îΪÖØÒªµÄ¼ÆËã»úÓ¦
ÓÃÖ®Ò»¡£´Ó´ó¶à ......
SQLÌṩÁËËÄÖÖÄ£ºýÆ¥Å䷽ʽ
1£¬%£º±íʾÈÎÒâ0¸ö»ò¶à¸ö×Ö·û¡£¿ÉÆ¥ÅäÈÎÒâÀàÐͺͳ¤¶ÈµÄ×Ö·û£¬ÓÐЩÇé¿öÏÂÈôÊÇÖÐÎÄ£¬ÇëÔËÓÃÁ½¸ö°Ù·ÖºÅ£¨%%£©±íʾ¡£
±ÈÈç SELECT * from [user] WHERE u_name LIKE '%Èý%'
½«»á°Ñu_nameΪ“ÕÅÈý”£¬“ÕÅèÈý”¡¢“Èý½Å蔣¬“ÌÆÈý²Ø”µÈµÈÓГÈý& ......