我有一个包含长度为1,数据类型为数字(9)的Oracle列(artnr)。 我想将数字更新为以下内容...。
例如: 如果数字为0,则应为00000 如果数字为1,则应为00001 如果数字为12,则应为00012
请记住:这里的00000、0000和00012是数字数据类型。
我尝试过以下方法,但未成功...。
例如: 如果数字为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解决方案。
TO_NUMBER()
。 - Benlpad()
(使用to_char()
避免隐式数据类型转换)或直接使用to_char()
。 - Nick Krasnov