2016-09-28 1 views
0

テーブルBIND_TESTと1つの列COL_1 varchar2(2 bytes)があります。Oracleでバインド変数を使用してvarchar2列に '01'を挿入する方法は?

バインド変数を使用して、2行のデータ:0110をテーブルに挿入します。

最初のSELECT文:

select :val_1 as COL_1 from dual; 

Bind Variable value: 01 

COL_1 
-------- 
01 

Bind Variable value: 10 

COL_1 
-------- 
10 

すべてが今までOKです。今すぐ挿入文:0から始まる値について

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 

、値が正しく挿入されていません。 BIND変数を使用する場合、これをどのように処理する必要がありますか?参考のために、

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

をそして:

+2

これは、キャストの問題のように聞こえます。つまり、数値「1」が数値として扱われているため、先頭のゼロは存在しません。 –

答えて

0

あなたは、この(空気コード)のようなものを試してみてくださいLPAD documention

1

また、文字列として値を挿入するTO_CHAR関数を使用することができます。

INSERT INTO bind_test 
SELECT TO_CHAR(:val_1, '00') AS col_1 
FROM dual; 
関連する問題