оракул PL SQL подтип положительного числа - PullRequest
0 голосов
/ 13 июня 2019

Я хочу создать положительное число (6, 2) подтипа.Для этого я попытался:

declare
    subtype st_positive_number is number(6, 0) > 0;
    v_positive_number positive(6, 2);
begin 
    null;
end;

, но ни одна из вышеперечисленных попыток не работает.Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

4 голосов
/ 13 июня 2019

Вам необходимо ограничить подтип диапазоном, и вы хотите присвоить этот подтип переменной, например ::100100

declare
    subtype st_positive_number is PLS_INTEGER RANGE 0..999999;
    v_positive_number st_positive_number;
begin 
    v_positive_number := 999999;
end;
/
1 голос
/ 13 июня 2019

Как бы вы хотели его использовать? Если речь идет о создании таблицы, столбец которой принимает только положительные числа, то создайте проверочное ограничение, например,

SQL> create table test (id number constraint ch_pos check (id > 0))

Table created.

SQL> insert into test (id) values (100);

1 row created.

SQL> insert into test (id) values (-100);
insert into test (id) values (-100)
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.CH_POS) violated

Если это не то, что вы ищете, не могли бы вы объяснить это немного подробнее, пожалуйста?

...