顯示具有 Oracle 標籤的文章。 顯示所有文章
顯示具有 Oracle 標籤的文章。 顯示所有文章

2012年3月7日 星期三

{Oracle} trunc函數 比對當天資料

SELECT * FROM abc
WHERE trunc(VaryDate)=trunc(sysdate)

VaryDate--資料表欄位名稱
sysdate---系統時間

2011年12月13日 星期二

{Oracle} ORA CODE(持續更新;更新時間:10/01)

1.ORA-00913: too many values
前題:在INSERT INTO ABC@ccc.world SELECT * FROM ABC WHERE id = :Id
             的語法下,產生ORA-00913
解惑:ABC@ccc.world Table欄位數與ABC Table欄位數不符而致


2.ORA-01795:
前題:SELECT * FROM ABC WHERE column in('1','2',.........................................)
解惑:因in語法中超過1000筆資料造成錯誤,其將語法改為 SELECT * FROM ABC WHERE
column in('1'......) or column in('1001',...............)

3.ORA-00904:invalid identifier

前題:SELECT * FROM ABC WHERE column='y'
解惑:語法中column名稱打錯,不在ABC Table中

4.ORA-01722:invalid number

前題:SELECT To_char(abc,'yyyy') FROM ABC
解惑:轉型失敗,查abc欄位內值是否有無法轉型的格式

5.ORA-00979: not a GROUP BY expression
前題:SELECT column2 FROM ABC GROUP BY column1
解惑: column1不在select list中,無法Group

6.ORA-01843:not a valid month
前題:SELECT TO_CHAR(columnDate,'yyyy-MM-dd')   FROM ABC WHERE columnDate between '2012-1月-01' AND '2013-1月-01'
解惑: columnDate日期格式如有中文,勿直接Where中文格式;改寫為
SELECT TO_CHAR(columnDate,'yyyy-MM-dd')   FROM ABC WHERE TO_CHAR(columnDate,'yyyy-MM-dd') between '2012-01-01' AND '2013-01-01';

2011年12月2日 星期五

{Oracle} join 語法-未完全

RIGHT JOIN:
寫法一、
select * from 
(select charg from ABC where charg is not null order by charg desc)a
,
(select aufnr ,anred from CDE)b
where a.charg(+)=(substr(b.aufnr,6))

寫法二、
select id from 
ABC A RIGHT JOIN CDE B
ON a.ID=b.ID

意義:
依CDE的表格為準,只要CDE有的,全列出來



參考:http://www.cnblogs.com/helong/articles/2088535.html