今天寫查詢語句,關聯多張表,出現了這個錯誤。
結果發現時字段的數據類型不一致。
select * from table_a a,table_b b where to_char(a.project_id)=b.project_id(+) --把project_id的類型轉換成字符串類型,使其保持一致。
1.關聯時轉換一下數據類型;
2.或者修改表中的字段。
附錄:
1、TO_CHAR() 本函數又可以分三小類,分別是
①轉換字符->字符TO_CHAR(c):將nchar,nvarchar2,clob,nclob類型轉換為char類型;
select TO_CHAR('AABBCC') from DUAL;
②轉換時間->字符TO_CHAR(d[,fmt]):將指定的時間(data,timestamp,timestamp with time zone)按照指定格式轉換為varchar2類型;
select TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') from DUAL;
③轉換數值->字符TO_CHAR(n[,fmt]):將指定數值n按照指定格式fmt轉換為varchar2類型並返回;
select TO_CHAR(-100, 'L99G999D99MI') from DUAL; select to_char(123456) from DUAL;
2、TO_NUMBER(c[,fmt[,nls]]) 將char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式轉換為數值類型並返回。
select TO_NUMBER('-100.00', '9G999D99') from DUAL; select to_number('123456') from DUAL;
ok。