列の値を更新しようとしています。列のデータ型はNumberです。要件ごとに、右側のレコードについては、この列は000で更新されます。これを条件のElse部分に含めましたが、テーブルが更新されているときは000でなく0になります。提案してください。どうすれば000にすることができますか?oracleでnumber列の値を000に更新します。
MERGE INTO mem_src_extn t USING
(
SELECT mse.rowid row_id,
CASE WHEN mse.type_value IS NULL OR mse."TYPE" IS NULL OR mse.VALUE_1 IS NULL or mse.VALUE_2 IS NULL THEN 100
WHEN (SELECT count(*) FROM cmc_mem_src cms WHERE cms.tn_id = mse.type_value) = 0 THEN 222
WHEN count(mse.value_1) over (partition by type_value) > 1 THEN 333
ELSE 000 int_value_1 <-- here
FROM mem_src_extn mse
) u
ON (t.rowid = u.row_id)
WHEN MATCHED THEN UPDATE SET t.int_value_1 = u.int_value_1
列のデータ型はnumberですか?はいの場合、その形式では保存できません。その列のデータをゼロで取り出すときには、000に置き換えます。 – Buddi
数字はありません。それは文字列ですが、数字として0、000、および0.000はすべて同じ数字です(ゼロ)。 – mathguy
数字の0は内部的に '0'として保存されます。 '000'を見たい場合は、プレゼンテーション層でこれを処理する必要があります。代わりに、あなたは_could_列のテキストを作ることができますが、これはいいです。 –