Sql 希望在oracle数字数据类型列中插入数据为';001和x27;而不是';1';

Sql 希望在oracle数字数据类型列中插入数据为';001和x27;而不是';1';,sql,plsql,plsqldeveloper,Sql,Plsql,Plsqldeveloper,要将oracle数字数据类型列中的数据作为“001”而不是“1”插入 这是我的密码: create table TEMP2 (id number); INSERT INTO TEMP2 VALUES(001); 执行时: SELECT * FROM TEMP2; 输出显示为: ID 1 我想将数字存储为“001”而不是“1”。您不应该存储仅用于显示目的的信息。如果这是一个数字,那么一定要将其存储为一个数字 显示值时,始终可以格式化输出: SELECT to_char(id, 'FM000

要将oracle数字数据类型列中的数据作为“001”而不是“1”插入

这是我的密码:

create table TEMP2 (id number);

INSERT INTO TEMP2 VALUES(001);
执行时:

SELECT * FROM TEMP2;
输出显示为:

ID
1

我想将数字存储为“001”而不是“1”。

您不应该存储仅用于显示目的的信息。如果这是一个数字,那么一定要将其存储为一个数字

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

SELECT to_char(id, 'FM000')
FROM TEMP2;
如果不希望每次运行select时都执行此操作,请创建一个视图:

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'));

您不应该存储仅用于显示目的的信息。如果这是一个数字,那么一定要将其存储为一个数字

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

SELECT to_char(id, 'FM000')
FROM TEMP2;
如果不希望每次运行select时都执行此操作,请创建一个视图:

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'));

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

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

数字数据类型没有前导零,这是一种显示格式。您需要
以显示前导零的格式显示字符
,或者
LPAD
。显示格式是客户端应用程序的工作。如果需要一致的显示格式,则可以使用
to_char
表达式编写视图。数字数据类型没有前导零,这是一种显示格式。您需要
以显示前导零的格式显示字符
,或者
LPAD
。显示格式是客户端应用程序的工作。如果需要一致的显示格式,则可以使用
to_char
表达式编写视图。存储空间不在里面。