2016-11-10 5 views
1

Хотите вставить данные в столбце типа данных оракула как '001' вместо '1'.Хотите вставить данные в столбце типа данных оракула как '001' вместо '1'

Вот мой код:

create table TEMP2 (id number); 

INSERT INTO TEMP2 VALUES(001); 

При выполнении:

SELECT * FROM TEMP2; 

Выход выглядит как:

ID 
1 

Я хочу сохранить номер, как '001' вместо ' 1' .

+3

Числовой тип данных не имеет ведущих нулей, это формат отображения. Вам нужно либо «TO_CHAR» с форматом, который показывает ведущие нули или «LPAD». – dnoeth

+0

Форматы отображения - это работа клиентского приложения. Если вам нужен согласованный формат отображения, вы можете написать представление с выражением 'to_char'. Хранение в нее не входит. –

ответ

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

Вы можете изменить колонку на VARCHAR2. Wether это хорошее решение, зависит от ваших потребностей.

 Смежные вопросы

  • Нет связанных вопросов^_^