我有一个 oracle 列(artnr)包含长度为 1 的数字(9)类型。我想按以下方式更新号码...
例子 :
如果数字为 0,则应为 00000 如果数字为 1,则应为 00001 如果数字为 12,则应为 00012
请记住:这里的 00000,0000 和 00012 是数字数据类型
以下是我尝试过但失败的方法..
UPDATE pitb.toestel b
SET b.artnr = LPAD (b.artnr, 5, 0)
WHERE b.idinventaris = 403743;
失败,因为 Lpad 只能应用于字符串
UPDATE pitb.toestel b
SET b.artnr = TO_NUMBER (TO_CHAR (artnr, '00009'), '00009')
WHERE b.idinventaris = 403743;
仍然失败,因为 to_number 不会显示前导零。它只会从第一个数字考虑
任何人,你能建议我一些可以解决这种情况的东西吗?
sql 比 pl/sql 解决方案更可取