Sql 在创建表格期间,在数字数据类型之前显示0

Sql 在创建表格期间,在数字数据类型之前显示0,sql,oracle11g,Sql,Oracle11g,我基本上有一张名为person的表,如下所示 create table Person ( Name varchar2 (50), Phone_number Number (15) ); 我面临的问题是,当我向0插入值时,如何使0显示在它前面 insert into person values ('James', 0162323456); 有什么办法可以解决这个问题吗在加载到数字类型时,没有办法强制Oracle保留前导零,因为Ora

我基本上有一张名为person的表,如下所示

    create table Person
    (
       Name varchar2 (50),
       Phone_number Number (15)
    );
我面临的问题是,当我向0插入值时,如何使0显示在它前面

     insert into person values ('James', 0162323456);

有什么办法可以解决这个问题吗

在加载到数字类型时,没有办法强制Oracle保留前导零,因为Oracle(以及我所知道的每个RDBMS)只跟踪。这意味着前导零和尾随零将被删除

我建议您在读取表中的数字时,使用并指定适当的长度来转换它。例如,
TO_CHAR(123,'09999')='00123'


如果这是不可接受的,您需要将列类型从数字格式更改为字符串格式,可能是VARCHAR2。

将电话号码数据类型设置为varchar(15)除了当前的问题之外,数字数据类型可能会阻止您处理电话分机。因此,除了将其设置为varchar之外,没有其他方法