PL / SQL - определить точность и масштаб для числового параметра хранимой процедуры - PullRequest
0 голосов
/ 11 октября 2019

У меня есть хранимая процедура, которая вставляет значения из параметров в таблицу. Один из параметров должен разрешать числа с точностью и шкалой, чтобы можно было вызывать процедуру следующим образом: EXECUTE operation(10, 10, 2.5). Проблема в том, что, похоже, нет способа определить такие вещи для параметров в PL / SQL. Это работает, когда я устанавливаю тип параметра на VARCHAR2 и затем вызываю to_number, но это изменит способ вызова процедуры из-за апострофов.

Так есть ли способ передать число в формате, таком как NUMBER(8,2), в процедуру? Заранее спасибо.

1 Ответ

2 голосов
/ 11 октября 2019

Я не уверен, что понимаю проблему.

Что не так с

create procedure operation (par_1 in number,
                            par_2 in number,
                            par_3 in number
                           )
as ...

Он принимает (10, 10, 2.5). Итак ...?

Демонстрация:

SQL> create table test (a number, b number, c number);

Table created.

SQL> create or replace procedure operation
  2    (par_1 in number, par_2 in number, par_3 in number)
  3  as
  4  begin
  5    insert into test (a, b, c) values (par_1, par_2, par_3);
  6  end;
  7  /

Procedure created.

SQL> exec operation (10, 10, 2.5);

PL/SQL procedure successfully completed.

SQL> select * from test;

         A          B          C
---------- ---------- ----------
        10         10        2,5

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...