Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracleʱ¼äÀàÐÍÊý¾ÝΪ0µÄBug

¿ª·¢×éÔÚÊý¾ÝÇ¨ÒÆÊ±£¬±¨¸æ·¢ÏÖһЩÊýֵΪ'0000/00/00'µÄdateÊý¾Ý£¬µ¼ÖÂÊý¾ÝÇ¨ÒÆÊ§°Ü¡£
Õâ¸öÎÊÌâÓÐµãÆæ¹Ö£¬ÒòΪÔÚOracleÖУ¬dateÀàÐ͵ÄÊý¾ÝµÄȡֵ·¶Î§ÊÇ´Ó-4712/12/31µ½9999/12/31Ö®¼ä£¬²¢ÇÒÄê·Ý²»ÄÜΪ0¡£Ò²¾ÍÊÇ˵'0000/00/00'ÊÇÒ»¸ö·Ç·¨Êý¾Ý£¬²»ÎªOracleËù½ÓÊÜ¡£
 
SQL> select to_date('0000-00-00', 'yyyy-mm-dd') from dual;
 
select to_date('0000-00-00', 'yyyy-mm-dd') from dual
 
ORA-01843: not a valid month
 
SQL> select to_date('0000-01-01', 'yyyy-mm-dd') from dual;
 
select to_date('0000-01-01', 'yyyy-mm-dd') from dual
 
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
 
µ«ÎªÊ²Ã´ÔÚÊý¾ÝÖл¹ÊdzöÏÖÁË'0000/00/00'ÄØ£¿¶Ô´ËÎÊÌâÉÔ΢Ñо¿ÁËһϣ¬·¢ÏÖOracleÔÚdateÀàÐ͵ÄÊý¾ÝÎÊÌâÉÏȷʵ´æÔÚһЩbug£¬Í¨¹ýÒ»Ð©ÌØÊâ·½·¨»¹ÊÇÄÜʹdateÀàÐÍ´æ´¢'0000/00/00'Êý¾Ý¡£ÏÈ¿´ÒÔϲÙ×÷£¬ÕâÊÇbugÖ®Ò»¡£
 
SQL> select date '0000-01-01' from dual;
 
DATE'0000-01-01'
----------------
0/0/0000
 
SQL> select date '0000-11-22' from dual;
 
DATE'0000-11-22'
----------------
0/0/0000
 
ÔÚʹÓÃdate¹Ø¼ü×Öʱ£¬Ê±¼ä¸ñʽÊÇÂÞÂí¸ñʽ¡£´Ëʱ£¬ÎÒÃÇ·¢ÏÖOracleûÓжÔÄê·ÝÊÇ·ñΪ0½øÐÐУÑé¡£²¢ÇÒ£¬Ö»ÒªÄê·ÝΪ0£¬Êý¾Ý¶¼»á±»×ª±äΪ'0000/00/00'¡£
 
ÔÙ¿´ÁíÍâÒ»ÖÖÇé¿ö£¬
 
SQL> select to_date('0001-01-01', 'yyyy-mm-dd')-365 from dual;
 
TO_DATE('0001-01-01','YYYY-MM-
------------------------------
0/0/0000
 
SQL> select to_date('0001-01-01', 'yyyy-mm-dd')-360 from dual;
 
TO_DATE('0001-01-01','YYYY-MM-
------------------------------
0/0/0000
 
¿ÉÒÔ¿´µ½£¬Oracle¶Ôʱ¼ä±í´ïʽµÄ½á¹ûҲûÓÐУÑéÄê·ÝÊÇ·ñΪ0£¬½áºÏÉÏÃæµÄbug£¬Ö»Òª¼ÆËã½á¹ûÄê·ÝΪ0£¬ÎÞÂÛÔ¡¢ÈÕÊýÖµ£¬½á¹û¶¼Îª'0000/00/00'¡£
 
ÔÙ¿´µÚÈýÖÖÇé¿ö£¬¾Í¸ü¼ÓÌØÊâÁË£ºÖ»Òª¶Ô100µ½1500ÄêÖ®ÄÚµÄËùÓÐÕû°ÙÄêµÄÈÕÆÚ½øÐмÆË㣬Èç¹û½á¹ûΪ2ÔÂ29µÄ»°£¬½á¹û¶¼Îª'0000/00/00'¡£
 
SQL> select date '0099-2-28' +1 from dual;
 
DATE'0099-2-28'+1
-----------------
3/1/0099
 
SQL> select date '0100-2-28' +1 from dual;
 
DATE'0100-2-28'+1


Ïà¹ØÎĵµ£º

oracle ±í¿Õ¼ä²Ù×÷

oracle±í¿Õ¼ä²Ù×÷Ïê½â
  1
  2
  3×÷Õߣº   À´Ô´£º    ¸üÐÂÈÕÆÚ£º2006-01-04 
  5
  6 
  7½¨Á¢±í¿Õ¼ä
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

ORACLE SQLÓï¾äÓÅ»¯×ܽá

ORACLE SQLÓï¾äÓÅ»¯×ܽá
 
1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ,Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ, Ä ......

oracle ³£ÓòéѯÃüÁî

 Êý¾Ý×Öµädict×ÜÊÇÊôÓÚOracleÓû§sysµÄ¡£
1¡¢Óû§£º
¡¡select username from dba_users;
¸Ä¿ÚÁî
¡¡alter user spgroup identified by spgtest;
2¡¢±í¿Õ¼ä£º
¡¡select * from dba_data_files;
¡¡select * from dba_tablespaces;//±í¿Õ¼ä
¡¡select tablespace_name,sum(bytes), sum(blocks)
from dba_ ......

oracle ±Ê¼Ç II Ö®DML:Êý¾Ý²Ù×÷ÓïÑÔ

 DML:Data Manipulation Language Êý¾Ý²Ù×÷ÓïÑÔ
°üÀ¨£ºCRUD
1. insertÓï¾ä
(1) ´ÓÆäËü±íÖи´ÖÆÊý¾Ý,ʵÏÖ·½·¨:ÔÚinsert Óï¾äÖмÓÈë²éѯÓï¾ä
insert into sales_reps(id,name,salary,commission_pct)  select employee_id,last_name,salary,commission_pct
from employees where job_id like '%rep';
(2) up ......

Oracleɾ³ýÖØ¸´Ðд«ÖDz¥¿Í

 ²éѯ¼°É¾³ýÖØ¸´¼Ç¼µÄSQLÓï¾ä
1¡¢²éÕÒ±íÖжàÓàµÄÖØ¸´¼Ç¼£¬Öظ´¼Ç¼ÊǸù¾Ýµ¥¸ö×ֶΣ¨peopleId£©À´ÅжÏ
select * from people
where peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1)
2¡¢É¾³ý±íÖжàÓàµÄÖØ¸´¼Ç¼£¬Öظ´¼Ç¼ÊǸù¾Ý ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ