在ORACLE中進行關聯查詢時,作為關聯查詢的兩字段數據類型要一至,否則會報:
ORA-01722:invalid number
這樣的錯誤,如下查詢語句:
select * from A a,B b where a.loginid=b.userid;
如果a.loginid的數據類型為:number(n),而b.userid的數據類型為:varchar2(n),則會報上面的錯誤,要二者為同一數據類型,上面的查詢語句才能正確的被執行,平時可能在做一些查詢統計時沒注意這些問題(可能表結構是別人事先已經建好了的,而我們只是去使用而于),所以當我們在設計表結構時,如果以后某兩表(或多表)之間存在關聯關系,即查詢相關數據時,要關聯它們之間的某些字段,這時我們就要注意了,要將到時可能用于關聯查詢的字段的數據類型設計為相同的類型,當然字段長度可以不一樣,這樣到時關聯查詢時就不會有問題了,否則以后還要改字段數據類型,而且此時表中又有了數據,為了防止數據丟失,改起來還有點麻煩.
這種問題在ORACLE關系數據庫中會出現,在其它關系數據庫中不知道會不會出現,猜測可能也會有類似問題.
注: 這可能是一個很簡單的問題,但這確可能是很容易忽視的問題,有時在設計表結構時,可能會由于考慮不周,造成以后要關聯查詢相關數據時出現上面的錯誤,從而要去改變表的字段類型,從而帶來一些不必要的麻煩.
posted on 2009-04-09 16:49
henry1451 閱讀(1636)
評論(2) 編輯 收藏