varchar2型字段查詢問題

2021-06-02 20:11:15 字數 501 閱讀 5412

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個,如果是...