想要在oracle数字数据类型列中插入数据' 001'而不是' 1'

时间:2016-11-10 07:11:20

标签: sql plsql plsqldeveloper

想要在oracle数字数据类型列中插入数据' 001'而不是' 1'。

这是我的代码:

create table TEMP2 (id number);

INSERT INTO TEMP2 VALUES(001);

执行时:

SELECT * FROM TEMP2;

输出显示为:

ID
1

我想将号码存储为' 001'而不是' 1'。

2 个答案:

答案 0 :(得分:4)

您不应存储仅用于显示目的的信息。如果这是一个数字,那么无论如何都要将它存储为数字。

显示值时,您始终可以格式化输出

SELECT to_char(id, 'FM000')
FROM TEMP2;

如果您不希望每次运行选择时都这样做,请创建一个视图:

create view formatted_temp
as
SELECT to_char(id, 'FM000')
FROM TEMP2;

或者创建一个为您执行此操作的计算列:

alter table temp2 
    add formatted_id generated always as (to_char(id, 'FM000'));

答案 1 :(得分:0)

您可以将列更改为VARCHAR2。这是一个很好的解决方案取决于您的需求