0
我呼籲MY_TABLE表:從數字轉換爲字符串工作不正常
| id (number) | some_data (varchar2(3)) |
我然後查詢使用該表:P_DATA = 'BOB':
SELECT * FROM my_table
where upper(some_data) = upper(CAST(:P_DATA AS VARCHAR(3)) ;
// SELECT * FROM my_table where upper(some_data) = upper(CAST('BOB' AS VARCHAR(3))
這個偉大的工程,但是當綁定變量是一個數字010例如,它不返回任何內容:
SELECT * FROM my_table
where upper(some_data) = upper(CAST(:P_DATA AS VARCHAR(3)) ;
// SELECT * FROM my_table where upper(some_data) = upper(CAST(010 AS VARCHAR(3))
如果我把單引號圍繞010然後它返回數據:
SELECT * FROM my_table
where upper(some_data) = upper(CAST(:P_DATA AS VARCHAR(3)) ;
// SELECT * FROM my_table where upper(some_data) = upper(CAST('010' AS VARCHAR(3))
即使綁定變量是一個數字,我如何才能對所有這些場景進行此項工作?
只要始終以字符串形式傳遞您的綁定變量。那麼不需要施放它。 – Boneist
010是數字10,所以在投入字符串時它是'10',而不是'010'。 – trincot
@trincot是否有辦法確保領先的0在那裏? – user2924127