ºìÁªLinuxÃÅ»§
Linux°ïÖú

´ÓMySQLµ½ORACLE³ÌÐòǨÒƵÄ×¢ÒâÊÂÏî

·¢²¼Ê±¼ä:2006-10-13 00:25:46À´Ô´:ºìÁª×÷Õß:ÎÔÁú
¡¡¡¡ÓкܶàÓ¦ÓÃÏîÄ¿, ¸ÕÆð²½µÄʱºòÓÃMYSQLÊý¾Ý¿â»ù±¾ÉÏÄÜʵÏÖ¸÷ÖÖ¹¦ÄÜÐèÇó£¬Ëæ×ÅÓ¦ÓÃÓû§µÄÔö¶à£¬Êý¾ÝÁ¿µÄÔö¼Ó£¬MYSQL½¥½¥µØ³öÏÖ²»¿°ÖظºµÄÇé¿ö£ºÁ¬½ÓºÜÂýÉõÖÁå´»ú£¬ÓÚÊǾÍÓаÑÊý¾Ý´ÓMYSQLǨµ½ORACLEµÄÐèÇó£¬Ó¦ÓóÌÐòÒ²ÒªÏàÓ¦×öһЩÐ޸ġ£±¾ÈË×ܽá³öÒÔϼ¸µã×¢ÒâÊÂÏϣÍû¶Ô´ó¼ÒÓÐËù°ïÖú¡£

¡¡¡¡1£® ×Ô¶¯Ôö³¤µÄÊý¾ÝÀàÐÍ´¦Àí

¡¡¡¡MYSQLÓÐ×Ô¶¯Ôö³¤µÄÊý¾ÝÀàÐÍ£¬²åÈë¼Ç¼ʱ²»ÓòÙ×÷´Ë×ֶΣ¬»á×Ô¶¯»ñµÃÊý¾ÝÖµ¡£

¡¡¡¡ORACLEûÓÐ×Ô¶¯Ôö³¤µÄÊý¾ÝÀàÐÍ£¬ÐèÒª½¨Á¢Ò»¸ö×Ô¶¯Ôö³¤µÄÐòÁкţ¬²åÈë¼Ç¼ʱҪ°ÑÐòÁкŵÄÏÂÒ»¸öÖµ¸³ÓÚ´Ë×ֶΡ£

[code]CREATE SEQUENCE ÐòÁкŵÄÃû³Æ (×îºÃÊDZíÃû+ÐòÁкűê¼Ç)
INCREMENT BY 1 START WITH 1
MAXVALUE 99999 CYCLE NOCACHE;[/code]

¡¡¡¡ÆäÖÐ×î´óµÄÖµ°´×ֶεij¤¶ÈÀ´¶¨, Èç¹û¶¨ÒåµÄ×Ô¶¯Ôö³¤µÄÐòÁкŠNUMBER(6) , ×î´óֵΪ999999

¡¡¡¡INSERT Óï¾ä²åÈëÕâ¸ö×Ö¶ÎֵΪ:

¡¡¡¡ÐòÁкŵÄÃû³Æ.NEXTVAL

¡¡¡¡2. µ¥ÒýºÅµÄ´¦Àí

¡¡¡¡MYSQLÀï¿ÉÒÔÓÃË«ÒýºÅ°üÆð×Ö·û´®£¬ORACLEÀïÖ»¿ÉÒÔÓõ¥ÒýºÅ°üÆð×Ö·û´®¡£ÔÚ²åÈëºÍÐÞ¸Ä×Ö·û´®Ç°±ØÐë×öµ¥ÒýºÅµÄÌæ»»£º°ÑËùÓгöÏÖµÄÒ»¸öµ¥ÒýºÅÌæ»»³ÉÁ½¸öµ¥ÒýºÅ¡£

¡¡¡¡3. ·­Ò³µÄSQLÓï¾äµÄ´¦Àí

¡¡¡¡MYSQL´¦Àí·­Ò³µÄSQLÓï¾ä±È½Ï¼òµ¥£¬ÓÃLIMIT ¿ªÊ¼Î»ÖÃ, ¼Ç¼¸öÊý£»PHPÀﻹ¿ÉÒÔÓÃSEEK¶¨Î»µ½½á¹û¼¯µÄλÖá£

¡¡¡¡ORACLE´¦Àí·­Ò³µÄSQLÓï¾ä¾Í±È½Ï·±ËöÁË¡£Ã¿¸ö½á¹û¼¯Ö»ÓÐÒ»¸öROWNUM×ֶαêÃ÷ËüµÄλÖÃ, ²¢ÇÒÖ»ÄÜÓÃROWNUM<100, ²»ÄÜÓÃROWNUM>80¡£

¡¡¡¡ÒÔÏÂÊǾ­¹ý·ÖÎöºó½ÏºÃµÄÁ½ÖÖORACLE·­Ò³SQLÓï¾ä( IDÊÇΨһ¹Ø¼ü×ÖµÄ×Ö¶ÎÃû )£º

¡¡¡¡Óï¾äÒ»£º

[code]SELECT ID, [FIELD_NAME,...]
FROM TABLE_NAME WHERE ID IN
( SELECT ID FROM (SELECT
ROWNUM AS NUMROW,
ID FROM TABLE_NAME
WHERE Ìõ¼þ1 ORDER BY Ìõ¼þ2)
WHERE NUMROW > 80 AND
NUMROW < 100 ) ORDER BY Ìõ¼þ3;[/code]

¡¡¡¡Óï¾ä¶þ£º

[code]SELECT * FROM (( SELECT ROWNUM AS NUMROW,
c.* from (select [FIELD_NAME,...]
FROM TABLE_NAME
WHERE Ìõ¼þ1 ORDER BY Ìõ¼þ2) c)
WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY Ìõ¼þ3;[/code]

¡¡¡¡4£® ³¤×Ö·û´®µÄ´¦Àí

¡¡¡¡³¤×Ö·û´®µÄ´¦ÀíORACLEÒ²ÓÐËüÌØÊâµÄµØ·½¡£INSERTºÍUPDATEʱ×î´ó¿É²Ù×÷µÄ×Ö·û´®³¤¶ÈСÓÚµÈÓÚ4000¸öµ¥×Ö½Ú, Èç¹ûÒª²åÈë¸ü³¤µÄ×Ö·û´®, Ç뿼ÂÇ×Ö¶ÎÓÃCLOBÀàÐÍ£¬·½·¨½èÓÃORACLEÀï×Ô´øµÄDBMS_LOB³ÌÐò°ü¡£²åÈëÐ޸ļǼǰһ¶¨Òª×ö½øÐзǿպͳ¤¶ÈÅжϣ¬²»ÄÜΪ¿ÕµÄ×Ö¶ÎÖµºÍ³¬³ö³¤¶È×Ö¶ÎÖµ¶¼Ó¦¸ÃÌá³ö¾¯¸æ, ·µ»ØÉϴβÙ×÷¡£

¡¡¡¡5. ÈÕÆÚ×ֶεĴ¦Àí

¡¡¡¡MYSQLÈÕÆÚ×ֶηÖDATEºÍTIMEÁ½ÖÖ£¬ORACLEÈÕÆÚ×Ö¶ÎÖ»ÓÐDATE£¬°üº¬ÄêÔÂÈÕʱ·ÖÃëÐÅÏ¢£¬Óõ±Ç°Êý¾Ý¿âµÄϵͳʱ¼äΪSYSDATE, ¾«È·µ½Ã룬»òÕßÓÃ×Ö·û´®×ª»»³ÉÈÕÆÚÐͺ¯Êý

[code]TO_DATE(¡®2001-08-01¡¯,¡¯YYYY-MM-DD¡¯)[/code]

¡¡¡¡Äê-ÔÂ-ÈÕ 24Сʱ:·ÖÖÓ:Ãë µÄ¸ñʽYYYY-MM-DD HH24:MI:SS TO_DATE()»¹ÓкܶàÖÖÈÕÆÚ¸ñʽ, ¿ÉÒԲο´ORACLE DOC.

¡¡¡¡ÈÕÆÚÐÍ×Ö¶Îת»»³É×Ö·û´®º¯Êý

[code]TO_CHAR(¡®2001-08-01¡¯,¡¯YYYY-MM-DD HH24:MI:SS¡¯)[/code]

¡¡¡¡ÈÕÆÚ×ֶεÄÊýѧÔËË㹫ʽÓкܴóµÄ²»Í¬¡£

¡¡¡¡MYSQLÕÒµ½À뵱ǰʱ¼ä7ÌìÓÃ

[code]DATE_FIELD_NAME > SUBDATE£¨£¨NOW£¨£©£¬INTERVAL 7 DAY£©[/code]

¡¡¡¡ORACLEÕÒµ½À뵱ǰʱ¼ä7ÌìÓÃ

[code]DATE_FIELD_NAME >SYSDATE - 7;[/code]

¡¡¡¡6. ¿Õ×Ö·ûµÄ´¦Àí

¡¡¡¡MYSQLµÄ·Ç¿Õ×Ö¶ÎÒ²ÓпյÄÄÚÈÝ£¬ORACLEÀﶨÒåÁË·Ç¿Õ×ֶξͲ»ÈÝÐíÓпյÄÄÚÈÝ¡£

¡¡¡¡°´MYSQLµÄNOT NULLÀ´¶¨ÒåORACLE±í½á¹¹, µ¼Êý¾ÝµÄʱºò»á²úÉú´íÎó¡£Òò´Ëµ¼Êý¾ÝʱҪ¶Ô¿Õ×Ö·û½øÐÐÅжϣ¬Èç¹ûΪNULL»ò¿Õ×Ö·û£¬ÐèÒª°ÑËü¸Ä³ÉÒ»¸ö¿Õ¸ñµÄ×Ö·û´®¡£

¡¡¡¡7. ×Ö·û´®µÄÄ£ºý±È½Ï

¡¡¡¡MYSQLÀïÓà ×Ö¶ÎÃû like '%×Ö·û´®%'

¡¡¡¡ORACLEÀïÒ²¿ÉÒÔÓà ×Ö¶ÎÃû like '%×Ö·û´®%' µ«ÕâÖÖ·½·¨²»ÄÜʹÓÃË÷Òý, ËٶȲ»¿ì

¡¡¡¡ÓÃ×Ö·û´®±È½Ïº¯Êý instr(×Ö¶ÎÃû,'×Ö·û´®')>0 »áµÃµ½¸ü¾«È·µÄ²éÕÒ½á¹û

¡¡¡¡8. ³ÌÐòºÍº¯ÊýÀ²Ù×÷Êý¾Ý¿âµÄ¹¤×÷Íê³ÉºóÇë×¢Òâ½á¹û¼¯ºÍÖ¸ÕëµÄÊÍ·Å¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ