2016-09-28 18 views
0

我有一個表BIND_TEST與一列COL_1 varchar2(2 bytes)如何在oracle中使用綁定變量將'01'插入varchar2列?

我想使用綁定變量向表中插入2行數據:0110

首先選擇語句:

select :val_1 as COL_1 from dual; 

Bind Variable value: 01 

COL_1 
-------- 
01 

Bind Variable value: 10 

COL_1 
-------- 
10 

一切都OK至今。現在插入語句:

insert into BIND_TEST 
select :val_1 as COL_1 from dual; 

Bind Variable value: 01 

COL_1 
-------- 
1 

Bind Variable value: 10 

COL_1 
-------- 
10 

對於來自0初始值,該值不正確地插入。 使用BIND VARIABLES時應該如何處理?

+2

這聽起來像是一個鑄造問題,即數字「1」被視爲數字,因此前導零不存在。 –

回答

0

你可以嘗試這樣的事情(空氣代碼):

INSERT INTO bind_test 
SELECT LPAD(:val_1, 2, '0') AS col_1 
FROM dual; 

而且,以供參考:LPAD documention

1

您還可以使用TO_CHAR函數來插入值作爲一個字符串。

INSERT INTO bind_test 
SELECT TO_CHAR(:val_1, '00') AS col_1 
FROM dual; 
相關問題