oracleÖеÄNVL,NVL2,NULLIF,COALESCE¼¸¸öͨÓú¯Êý
OracleÖк¯ÊýÒÔǰ½éÉܵÄ×Ö·û´®´¦Àí£¬ÈÕÆÚº¯Êý£¬Êýѧº¯Êý,ÒÔ¼°×ª»»º¯ÊýµÈµÈ£¬»¹ÓÐÒ»ÀຯÊýÊÇͨÓú¯Êý¡£Ö÷ÒªÓУºNVL,NVL2,NULLIF,COALESCE£¬Õ⼸¸öº¯ÊýÓÃÔÚ¸÷¸öÀàÐÍÉ϶¼¿ÉÒÔ¡£
ÏÂÃæ¼òµ¥½éÉÜһϼ¸¸öº¯ÊýµÄÓ÷¨¡£
ÔÚ½éÉÜÕâ¸ö֮ǰÄã±ØÐëÃ÷°×ʲôÊÇoracleÖеĿÕÖµnull
1.NVLº¯Êý
NVLº¯ÊýµÄ¸ñʽÈçÏ£ºNVL(expr1,expr2)
º¬ÒåÊÇ£ºÈç¹ûoracleµÚÒ»¸ö²ÎÊýΪ¿ÕÄÇôÏÔʾµÚ¶þ¸ö²ÎÊýµÄÖµ£¬Èç¹ûµÚÒ»¸ö²ÎÊýµÄÖµ²»Îª¿Õ£¬ÔòÏÔʾµÚÒ»¸ö²ÎÊý±¾À´µÄÖµ¡£
ÀýÈ磺
SQL> select ename,NVL(comm, -1) from emp;
ENAME NVL(COMM,-1)
——————– ————
SMITH -1
ALLEN 300
WARD 500
JONES -1
MARTIN 1400
BLAKE -1
FORD -1
MILLER -1
ÆäÖÐÏÔʾ-1µÄ±¾À´µÄֵȫ²¿¶¼ÊÇ¿ÕÖµµÄ
2 NVL2º¯Êý
NVL2º¯ÊýµÄ¸ñʽÈçÏ£ºNVL2(expr1,expr2, expr3)
º¬ÒåÊÇ£ºÈç¹û¸Ãº¯ÊýµÄµÚÒ»¸ö²ÎÊýΪ¿ÕÄÇôÏÔʾµÚ¶þ¸ö²ÎÊýµÄÖµ£¬Èç¹ûµÚÒ»¸ö²ÎÊýµÄÖµ²»Îª¿Õ£¬ÔòÏÔʾµÚÈý¸ö²ÎÊýµÄÖµ¡£
SQL> select ename,NVL2(comm,-1,1) from emp;
ENAME NVL2(COMM,-1,1)
——————– —————
SMITH 1
ALLEN -1
WARD -1
JONES 1
MARTIN -1
BLAKE 1
CLARK 1
SCOTT 1
ÉÏÃæµÄÀý×ÓÖС£·²Êǽá¹ûÊÇ1µÄÔÀ´¶¼²»Îª¿Õ£¬¶ø½á¹ûÊÇ-1µÄÔÀ´µÄÖµ¾ÍÊǿա£
3. NULLIFº¯Êý
NULLIF(exp1,expr2)º¯ÊýµÄ×÷ÓÃÊÇÈç¹ûexp1ºÍexp2ÏàµÈÔò·µ»Ø¿Õ(NULL)£¬·ñÔò·µ»ØµÚÒ»¸öÖµ¡£
ÏÂÃæÊÇÒ»¸öÀý×Ó¡£Ê¹ÓõÄÊÇoracleÖÐHR schema£¬Èç¹ûHR´¦ÓÚËø¶¨£¬ÇëÆôÓÃ
ÕâÀïµÄ×÷ÓÃÊÇÏÔʾ³öÄÇЩ»»¹ý¹¤×÷µÄÈËÔ±Ô¹¤×÷£¬ÏÖ¹¤×÷¡£
SQL> SELECT e.last_name, e.job_id,j.job_id,NULLIF(e.job_id, j.job_id) “Old Job ID”
from employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name;
LAST_NAME JOB_ID JOB_ID Old Job ID
————————————————– ——————– ——————– ——————–
De Haan AD_VP IT_PROG AD_VP
Hartstein MK_MAN MK_REP MK_MAN
Kaufling ST_MAN ST_CLERK ST_MAN
Ïà¹ØÎĵµ£º
°²×°Oracle Database(10.0.2)ºó£¬Èç¹ûÐ޸ĻúÆ÷Ãûºó£¬
»áµ¼Ö¿ØÖÆÃæ°åµÄ·þÎñÖÐÆô¶¯OracleTNSLisener·þÎñÁ¢¿Ì¾ÍÍ£Ö¹¡£
ʹÓÃÃüÁîÐй¤¾ß£¬ÌáʾÈçÏ£º
(»úÆ÷ÃûÔÀ´Îª£ºANSWER-1738E000£¬¸ÄΪ£ºANSWER)
½â¾ö·½·¨£º
1>¹Øµô¿ØÖÆÃæ°åÖÐÓйØÓÚ Oracle Database µÄ·þÎñ¡£
2>ÐÞ¸Ä C:\oracle\product\10.2.0\db_1\NE ......
¸ú×ÅÕ⼸ÌìOracle OpenWorld´ó»áµÄ¾ÙÐУ¬Oracle11gµÄÐÂÌØÕ÷Ô½À´Ô½¶àµÄ±»Õ¹ÏÖ³öÀ´¡£
¡¡¡¡ÒÔǰ£¬ÎÒÔø¾Òý¼û¹ýOracle11g½«¿ÉÄÜÔÚ10Ô·ݵÄÕâ¸ö´ó»áÉÏÍÆ³ö£¬µ±³õÖÁÓÚAlpha°æµÄÐÅÏ¢ÒѾ¿ÉÒÔ¼ûµ½£¬ÏÖʱ³öÏÖµÄÒѾÊÇBeta°æ£¬ÀëOracle11gµÄÕýʽ°æÒѾ²»Ô¶¡£
¡¡¡¡Laurent Schneider ÔÚËûµÄBlogÖÐ̸µ½£¬¶ÔÓÚOracle11gµÄÃû×Ö»¹ ......
Ubuntu9.04ÏÂOracleÊÖ¶¯Æô¶¯Óë×ÔÆô¶¯½Å±¾
Ò»¡¢Æô¶¯Êý¾Ý¿âʵÀý
Java´úÂë
gengzhi
@gengzhi
-desktop:~$ su oracle
oracle@gengzhi
-desktop:~$ sqlplus
" scott/tiger as sysdba"
gengzhi@gengzhi-desktop:~$ s ......
1.¾¡¿ÉÄܵØÊ¹Óð󶨱äÁ¿ ²»Óÿª¹ØCURSOR_SHARING=FORCE
Èç¹ûÄãÔ¸Ò⣬Õâ¸öÌØÐÔ»áʵÏÖÒ»¸ö×Ô¶¯°ó¶¨Æ÷£¨auto-binder£©¡£
Èç¹ûÓÐÒ»¸ö²éѯ±àдΪSELECT * from EMP WHERE EMPNO = 1234£¬×Ô¶¯°ó¶¨Æ÷»áÇÄÎÞÉùÏ¢µØ°ÑËü¸Äд³É
SELECT * from EMP WHERE EMPNO = :x¡£ÕâȷʵÄܶ¯Ì¬µØ´ó´ó¼õÉÙÓ²½âÎöÊý£¬²¢¼õÉÙÇ°ÃæÌÖÂÛµ ......