NULLÖ¸µÄÊÇ¿ÕÖµ£¬»òÕß·Ç·¨Öµ¡£
NVL (expr1, expr2)->expr1ΪNULL£¬·µ»Øexpr2£»²»ÎªNULL£¬·µ»Øexpr1¡£×¢ÒâÁ½ÕßµÄÀàÐÍÒªÒ»ÖÂ
NVL2 (expr1, expr2, expr3) ->expr1²»ÎªNULL£¬·µ»Øexpr2£»ÎªNULL£¬·µ»Øexpr3¡£expr2ºÍexpr3ÀàÐͲ»Í¬µÄ»°£¬expr3»áת»»Îªexpr2µÄÀàÐÍ
NULLIF (expr1, expr2) ->ÏàµÈ·µ»ØNULL£¬²»µÈ·µ»Øexpr1
ÏêϸµÄ::
oracleµÄnvlº¯ÊýµÄÓ÷¨
ͨ¹ý²éѯ»ñµÃij¸ö×ֶεĺϼÆÖµ£¬Èç¹ûÕâ¸öֵλnull½«¸ø³öÒ»¸öÔ¤ÉèµÄĬÈÏÖµ
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1ÕâÀï¹ØÐĵÄnvlµÄÓ÷¨£¬nvl£¨arg,value£©´ú±íÈç¹ûÇ°ÃæµÄargµÄֵΪnullÄÇô·µ»ØµÄֵΪºóÃæµÄvalue
Èç: NVL(a,b)¾ÍÊÇÅжÏaÊÇ·ñÊÇNULL,Èç¹û²»ÊÇ·µ»ØaµÄÖµ£¬Èç¹ûÊÇ·µ»ØbµÄÖµ
ͨ¹ý²éѯ»ñµÃij¸ö×ֶεĺϼÆÖµ£¬Èç¹ûÕâ¸öֵλnull½«¸ø³öÒ»¸öÔ¤ÉèµÄĬÈÏÖµ
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1ÕâÀï¹ØÐĵÄnvlµÄÓ÷¨£¬nvl£¨arg,value£©´ú±íÈç¹ûÇ°ÃæµÄargµÄֵΪnullÄÇô·µ»ØµÄֵΪºóÃæµÄvalue
ÖйúÍø¹ÜÁªÃË
ÁíÒ»¸öÓйصÄÓÐÓ÷½·¨
declare
i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where
zydm=-1ÕâÑù¾Í¿ÉÒÔ°Ñ»ñµÃµÄºÏ¼ÆÖµ´æ´¢µ½±äÁ¿iÖУ¬È ......
oracle10g´´½¨Óû§
Oracle10g µÄ´´½¨Óû§Ãû
1¡¢ linux Ï oracle µÄÆô¶¯
ÒÔ oracle Éí·ÝµÇ¼
Æô¶¯ lsnrctl start
怬 sqplus /nolog
Á¬½ÓÊý¾Ý¿â connect /as sysdba
Æô¶¯Êý¾Ý¿â startup
¹Ø±ÕÊý¾Ý¿â shutdown immediate
2¡¢ ÔÚÊý¾ÝÖд´½¨Óû§Ãû
Æô¶¯Êý¾Ý¿âºó´´½¨Óû§Ãû
Á¬½Ó³¬¼¶Óû§ connect system/admin system ϵͳÓû§Ãû×Ö admin ÃÜÂë
´´½¨Óû§Ãû×Ö create user sha identified by admin Óû§Ãû£º sha ÃÜÂë :admin
¿ÉÒÔд Default tablespace user // Ö¸¶¨´æ´¢¶ÔÏóʹÓõÄĬÈϿռä±í ĬÈÏÊÇ system
Temporary tablespace temp; // ±£´æÁÙʱ¶ÔÏóËùʹÓõĿռä±í ĬÈÏÊÇ system
ÉÏÃæµÄÁ©ÐУ¬¿ÉÒÔд ¿Õ¼ä±íΪ user ÁÙʱΪ temp £»²»Ð´¾ÍĬÈÏ
3 ......
ÏÞÖÆË÷ÒýÊÇһЩûÓоÑéµÄ¿ª·¢ÈËÔ±¾³£·¸µÄ´íÎóÖ®Ò»¡£ÔÚSQLÖÐÓкܶàÏÝÚå»áʹһЩË÷ÒýÎÞ·¨Ê¹Óá£ÏÂÃæÌÖÂÛһЩ³£¼ûµÄÎÊÌ⣺
1 ʹÓò»µÈÓÚ²Ù×÷·û(<>¡¢!=)
ÏÂÃæµÄ²éѯ¼´Ê¹ÔÚcust_ratingÁÐÓÐÒ»¸öË÷Òý£¬²éѯÓï¾äÈÔȻִÐÐÒ»´ÎÈ«±íɨÃè¡£
select cust_Id,cust_name from customers where cust_rating <> 'aa';
°ÑÉÏÃæµÄÓï¾ä¸Ä³ÉÈçϵIJéѯÓï¾ä£¬ÕâÑù£¬ÔÚ²ÉÓûùÓÚ¹æÔòµÄÓÅ»¯Æ÷¶ø²»ÊÇ»ùÓÚ´ú¼ÛµÄÓÅ»¯Æ÷£¨¸üÖÇÄÜ£©Ê±£¬½«»áʹÓÃË÷Òý¡£
select cust_Id,cust_name from customers where cust_rating < 'aa' or cust_rating > 'aa';
ÌØ±ð×¢Ò⣺ͨ¹ý°Ñ²»µÈÓÚ²Ù×÷·û¸Ä³ÉORÌõ¼þ£¬¾Í¿ÉÒÔʹÓÃË÷Òý£¬ÒÔ±ÜÃâÈ«±íɨÃè¡£
2 ʹÓÃIS NULL »òIS NOT NULL
ʹÓÃIS NULL »òIS NOT NULLͬÑù»áÏÞÖÆË÷ÒýµÄʹÓá£ÒòΪNULLÖµ²¢Ã»Óб»¶¨Òå¡£ÔÚSQL ......
select * from (select t.*,rownum rn from (select * from emp) t where rownum<=10) where rn>=6;
´´½¨·ÖÒ³½á¹û¼¯µÄÓαê
create or replace package fenyepackage as
type testcursor is ref cursor;
end fenyepackage;
´´½¨·ÖÒ³´æ´¢¹ý³Ì
create or replace procedure fenye3(
tableName varchar2, --±íÃû
currPage number, --µ±Ç°Ò³
currPageSize number, --Ò³´óС
countRows out number, --×ܼǼÊý
countPages out number, --×ÜÒ³Êý
fenyecursor out fenyepackage.testcursor --µ±Ç°Ò³½á¹û¼¯
)is
v_sql varchar2(1000);
v_begin number:=(currPage-1)*currPageSize + 1;
v_end number:=currPage*currPageSize;
begin
v_sql:='select * from (select t.*,rownum rn from (select * from '|| tableName ||') t where rownum<='|| v_end ||')
where rn>='||v_begin;
......
ÔÚORACLEÖиø±í¡¢ÁÐÔö¼Ó×¢ÊÍÒÔ¼°¶ÁȡעÊÍ
1¡¢¸ø±íÌî¼Ó×¢ÊÍ£ºSQL>comment on table ±íÃû is '±í×¢ÊÍ";
2¡¢¸øÁмÓ×¢ÊÍ£ºSQL>comment on column ±í.ÁÐ is 'ÁÐ×¢ÊÍ';
3¡¢¶ÁÈ¡±í×¢ÊÍ£ºSQL>select * from user_tab_comments where comments is not null;
4¡¢¶ÁÈ¡ÁÐ×¢ÊÍ£ºSQL>select * from user_col_commnents where comments is not null and table_name='±íÃû';
¸½±íUSER_TAB_COMMENTSºÍuser_col_commentsµÄ½á¹¹£º
1¡¢user_tab_commentsÓÉtable_name¡¢table_typeºÍcommentsÈý²¿·Ö×é³É¡£
2¡¢user_col_commentsÓÉtable_name¡¢column_nameºÍcommentsÈý²¿·Ö×é³É¡£
3¡¢ÔÚSQL*PLUSÖÐÏÔʾ±í½á¹¹£ºdesc ±íÃû;
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/wsw002/archive/2005/11/14/529186.aspx ......
Oracle ´¥·¢Æ÷ÓÐÓï¾ä¼¶´¥·¢Æ÷ºÍÐм¶´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷ µ±É¾³ý²¿ÃűíÖеIJ¿ÃźÅʱ£¬Í¬Ê±É¾³ýµôÔ±¹¤±íÖв¿ÃźÅΪ£ºold.deptnoµÄ¼Ç¼
create or replace trigger del_dept_id
after delete on dept
for each row
begin
delete from emp where deptno=:old.deptno;
end;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖвåÈëÒ»¾ä£¬ÆäÖУºnew.deptno Ϊ²åÈëµÄ²¿ÃűàºÅ
create or replace trigger insert_dept
after insert on dept
for each row
begin
insert into emp(empno,ename,job,mgr,sal,hiredate,deptno) values('1234','JAMES','job',7566,3456,sysdate,:new.deptno);
end;
ÐÞ¸Äʱ£º
create or replace trigger update_dept
after update on dept
for each row
begin
update emp set deptno=:new.deptno where deptno=:old.deptno;
end;
/
ÉÏÃæµÄnew ±íºÍold±íÊÇÔÚÄÚ´æµ±ÖеÄ
ÎÒÃǶÔÄĸö±í½øÐÐÁËdeleteÄÇôold±í¾ÍºÍËûµÄ½á¹¹Ò»Ñù
ÎÒÃǶÔÄĸö±í½øÐÐÁËinsertÄÇônew±í¾ÍºÍËûµÄ½á¹¹Ò»Ñù
²åÈëÊý¾ÝʱºòÏȲåÈëµ½new±íÖУ¬È»ºóÔÚ²åÈëʵ¼ÊµÄ±íÖÐ
ɾ³ýÊý¾ÝʱºòÏȰÑÊý¾Ý·ÅÔÚold±íÖУ¬Ìá½»ºóÔÚ´Óold±íÖÐɾ³ý
......