Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / а нет ли возможности проверять входящие параметры процедур посредством check / 8 сообщений из 8, страница 1 из 1
28.11.2019, 15:54
    #39895749
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
Код: plsql
1.
CREATE OR REPLACE PROCEDURE prc1(p_param1 NUMBER CHECK(p_param1 in (0, 1)))
...
Рейтинг: 0 / 0
28.11.2019, 15:58
    #39895755
iOracleDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
andreymx,

А смысл?
...
Рейтинг: 0 / 0
28.11.2019, 16:02
    #39895761
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
andreymx
Код: plsql
1.
NUMBER CHECK(p_param1 in (0, 1))

Код: plsql
1.
SIGNTYPE
...
Рейтинг: 0 / 0
28.11.2019, 16:03
    #39895764
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
andreymx,

Можно объявить ограниченный subtype и использовать в качестве параметра. Но проверяться не будет.
...
Рейтинг: 0 / 0
28.11.2019, 16:11
    #39895773
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
-2-
Но проверяться не будет.
Точно?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> declare
  2    subtype TDigit is BINARY_INTEGER range 0..9;
  3    procedure Out(x TDigit)
  4    is
  5    begin
  6      dbms_output.put_line(x);
  7    end Out;
  8  begin
  9    Out(0);
 10    Out(1);
 11    Out(-1);
 12    Out(132);
 13  end;
 14  /
0
1
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 11

...
Рейтинг: 0 / 0
28.11.2019, 16:21
    #39895780
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
Elic
-2-
Но проверяться не будет.
Точно?
Я ошибся, памятуя, что ограничение размерности number/varchar2 не проверяется.
...
Рейтинг: 0 / 0
28.11.2019, 23:15
    #39895989
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
iOracleDev
А смысл?

позволило бы ловить больше ошибок во время компиляции, а в рантайме не заморачиваться валидацией параметров, написанной на коленке. ну и самодокументируемый код - это всегда плюс.

-2-
Я ошибся, памятуя, что ограничение размерности number/varchar2 не проверяется.

а этому, кстати, есть какое-то рациональное объяснение, кроме "ну вот так вот сделали"?
...
Рейтинг: 0 / 0
29.11.2019, 07:47
    #39896045
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а нет ли возможности проверять входящие параметры процедур посредством check
кит северных морей
а этому, кстати, есть какое-то рациональное объяснение, кроме "ну вот так вот сделали"?
Может ли INT-параметр иметь дробную часть? - Увы...
Т.е. нет.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / а нет ли возможности проверять входящие параметры процедур посредством check / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]