ORACLE ´¿¶È¼¶±ð£¨PURITY£©
PRAGMA RESTRICT_REFERENCES()£¬Õâ¸öPRAGMA±È½Ï¸´ÔÓ£¬ ×ܵÄÀ´Ëµ£¬ËüÊÇÒ»¸ö³ÌÐò¸¨Öú¼ìÑéÂ룬¼ì²é×Ó³ÌÐòµÄ´¿¶È£¨PURITY£©£¬°ïÖú¼ìÑé×Ó³ÌÐòÊÇ·ñÓÐÎ¥·´¹æÔòµÄµØ·½¡£Ò»°ãÓÃÔÚº¯ÊýÉÏ£¬µ«µ±º¯Êýµ÷Óùý³Ìʱ£¬Ò²Òª×÷ÏàÓ¦µÄÉèÖüì²é¡£ÕâÊÇΪÁ˱ÜÃâµ±ÔÚDMLÓï¾äÉϵ÷Óú¯ÊýʱÕý³£Ö´Ðв»ÖÁÓÚ²úÉú´íÎó¡£
Óï·¨£¬PRAGMA RESTRICT_REFERENCES(function_name | default , )RNDS, WNDS, RNPS, WNPS) | , TRUST);
RNDS£¬WNDS£¬RNPS£¬WNPS¿ÉÒÔͬʱָ¶¨¡£µ«µ±TRUSTÖ¸¶¨ÊÇ£¬ÆäËüµÄ±»ºöÂÔ¡£
DEFAUTÊÇÖ¸×÷ÓÃÔڸóÌÐò°üÉϵÄËùÓÐ×Ó³ÌÐò£¬º¯Êý¡£
RNDS£¨Read No Database State£©£¬¹æ¶¨×Ó³ÌÐò²»ÄܶÁÈ¡ÈκεÄÊý¾Ý¿â״̬ÐÅÏ¢¡£(¼´²»»á²éѯÊý¾Ý¿âµÄÈÎºÎ±í£¬°üÀ¨DUALÐé±í£©
RNPS£¨Read No Package State£©£¬¹æ¶¨×Ó³ÌÐò²»ÄܶÁÈ¡ÈκγÌÐò°üµÄ״̬ÐÅÏ¢£¬Èç±äÁ¿µÈ¡£
WNDS£¨Write No Database State£©£¬¹æ¶¨×Ó³ÌÐò²»ÄÜÏòÊý¾Ý¿âдÈëÈκÎÐÅÏ¢¡££¨¼´²»ÄÜÐÞ¸ÄÊý¾Ý¿â±í£©
WNPS£¨Write No Package State£©£¬¹æ¶¨×Ó³ÌÐò²»ÄÜÏò³ÌÐò°üдÈëÈκÎÐÅÏ¢¡££¨¼´²»ÄÜÐ޸ijÌÐò°ü±äÁ¿µÄÖµ£©
TRUST£¬Ö¸³ö×Ó³ÌÐòÊÇ¿ÉÒÔÏàÐŵIJ»»áÎ¥·´Ò»¸ö»ò¶à¸ö¹æÔò¡£Õâ¸öÑ¡ÏîÊÇÐèÒªµÄµ±ÓÃC»òJAVAдµÄº¯Êýͨ¹ýPL/SQLµ÷ÓÃʱ£¬ÒòΪPL/SQLÔÚÔËÐÐÊǶÔËüÃDz»Äܼì²é¡£
ʾÀý:
create or replace package purity is
minsal number(6,2);
maxsal number(6,2);
function max_sal return number;
function min_sal return number;
--ÏÞÖÆº¯Êý²»Äܸıä°ü±äÁ¿:WNPS,ÆäËüµÄ»¹ÓÐ
pragma restrict_references(max_sal,wnps);
pragma restrict_references(min_sal,wnps);
end;
create or replace package body purity is
function max_sal return number
as
begin
--select max(sal) into maxsal from emp;
--¼ÓÉÏÃæÕâÐж԰ü±äÁ¿½øÐиıä,ÔòÌáʾ"Î¥·´Ïà¹Ø±àÒëָʾ"
return maxsal;
end;
function min_sal return number
as
begin
--select min(sal) into minsal from emp;
--¼ÓÉÏÃæÕâÐж԰ü±äÁ¿½øÐиıä,ÔòÌáʾ"Î¥·´Ïà¹Ø±àÒëָʾ"
return minsal;
end;
--¹¹Ô캯Êý
--д¹¹Ô캯Êý¹¹Ôì±äÁ¿Ê±,BEGIN¿ªÊ¼,¹²ÓðüÌå½áÊøµÄEND;±êÖ¾
begin
select min(sal),max(sal) into minsal,maxsal from em
Ïà¹ØÎĵµ£º
¶ÔÓÚinstrº¯Êý£¬ÎÒÃǾ³£ÕâÑùʹÓ㺴ÓÒ»¸ö×Ö·û´®ÖвéÕÒÖ¸¶¨×Ó´®µÄλÖá£Àý
È磺
SQL> select
instr('yuechaotianyuechao','ao') position from dual;
POSITION
----------
6
´Ó×Ö·û´®'yuechaotianyuechao'µÄµÚÒ»¸öλÖÿªÊ¼£¬Ïòºó² ......
--oracle jobsÅú´¦ÀíÃüÁî²Î¿¼
qlplus /nolog
connect sys/lee as sysdba
--ÒÔÏÂÁ½¾äÔÚsys(¼´¾ßÓÐdbaȨÏÞµÄÓû§)Óû§ÏÂÖ´ÐÐ
show parameter job_queue_processes;
alter system set job_queue_processes=10;
exit
sqlplus /nolog
connect jcy/jcy
ALTER TABLE T_OA_AFFICHE MODIFY (INPUT_TIME DATE);
ALTER TABLE ......
1.²é¿´ËùÓÐÓû§
select * from all_users; -------²é¿´ËùÓеÄÓû§
select * from user_users; --------²é¿´µ±Ç°Óû§
2.²é¿´Óû§»ò½ÇɫϵͳȨÏÞ£º
select * from user_sys_privs; --------²é¿´µ±Ç°Óû§µÄȨÏÞ
3.²é¿´½ÇÉ«Ëù°üº¬µÄȨÏÞ
&nb ......
5.µ÷Óú¯ÊýFN_ADDONE
--------------------
SQL> SET SERVEROUTPUT ON
SQL> DECLARE CNUM NUMBER;
2 BEGIN
3 CNUM := USER1_ADB.FN_ADDONE(3);
4 DBMS_OUTPUT.PUT_LINE('CNUM = ' || CNUM);
5 END;
6&nbs ......
OracleÈÕÆÚº¯Êýѧϰʱ£¬Ôڽ̳ÌÓм¸¸öʵÀýÈçÏ£º
Months_between(’01-sep-95’, ’11-jan-94’)
½á¹ûÊÇ£º19.6774194
Add_months ÔÚÖ¸¶¨µÄÔ·ÝÉÏÃæÔö¼ÓÏàÓ¦µÃÔ·Ý
ÀýÈ磺
Add_months(’11-jan-94’, 6)
½á¹ûÊÇ£º11-jul-94
Next_day ¼ÆËã¹æ¶¨Èͮ򵀼óÒ»¸öÌØ¶¨ÈÕÆÚ
ÀýÈ磺
Next_ ......