b.attr_code
b.mem_nbr
都是varchar2型的;
目前情況如下:
tf_b_trade_grp_mem_attr b中的b.attr_code資料只有數值型字串(如:1,2,3)
tf_b_trade_grp_mem b 中的b.mem_nbr 資料既有數值型字串(如:1,2,3),又有字元型字串(a,b,c);
執行下面的sql
select * from tf_b_trade_grp_mem_attr b where b.attr_code in (123,234);-----沒問題
select * from tf_b_trade_grp_mem b where b.mem_nbr in (123,234);-----報ora-01722: invalid number
因此,如果確定欄位是varchar2的,那麼查詢條件要加上單引號。如: b.mem_nbr in ('123','234')
varchar和varchar2的區別
varchar是標準sql裡面的。varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於英文是乙個位元組,佔的記憶體小,varchar2都是佔兩個位元組。varchar對空串不處理,varchar2將空串當做null來處理。varchar存放固定長度的字串,最大...
varchar和varchar2還有char的區別
varchar,varchar2 聯絡 1.varchar varchar2用於儲存可變長度的字串 比如varchar 20 存入字串 abc 則資料庫中該字段只佔3個位元組,而不是20個位元組 2.size 的最大值是 4000,而最小值是 1,其值表示位元組數,比如 varchar 20 表示最...
varchar和varchar2的區別
varchar是標準sql裡面的。varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於數字,英文本元是乙個位元組,佔的記憶體小,varchar2一般情況下把所有字元都佔兩位元組處理。具體要看資料庫使用的字符集,比如gbk,漢字就會佔兩個位元組,英文1個,如果是...