Во-первых, для ясности, вы не создаете последовательности в PL / SQL. Вы можете создавать последовательности только в SQL.
Во-вторых, если вы хотите, чтобы в столбце хранилось ровно три цифры, вам нужно, чтобы тип данных был VARCHAR2
(или какой-либо другой тип строки), а не более распространенный NUMBER
, поскольку NUMBER
по определению не хранить ведущие нули. Вы, конечно, можете это сделать, но это было бы необычно.
Тем не менее, вы можете использовать маску формата "fm009" для генерации строки с ровно 3 символами из числовой последовательности (бит "fm" необходим, чтобы гарантировать, что вы не получите дополнительные пробелы - вы могли бы TRIM
также результат вызова TO_CHAR
и обходится без бита "fm" маски).
SQL> create table t( col1 varchar2(3) );
Table created.
SQL> create sequence t_seq;
Sequence created.
SQL> ed
Wrote file afiedt.buf
1 insert into t
2 select to_char( t_seq.nextval, 'fm009' )
3 from dual
4* connect by level <= 10
SQL> /
10 rows created.
SQL> select * from t;
COL
---
004
005
006
007
008
009
010
011
012
013
10 rows selected.