Тест
Package POOL_PKG
IS
FUNCTION F_REKTANGULÄR(meter_in NUMBER,height_in NUMBER,bottom_in NUMBER,Show_dims_in IN NUMBER := 0) RETURN NUMBER;
END POOL_PKG;
Package Body POOL_PKG is
FUNCTION F_REKTANGULÄR(meter_in NUMBER,height_in NUMBER,bottom_in NUMBER, Show_dims_in IN NUMBER := 0) RETURN NUMBER
v_result NUMBER(10);
v_unit VARCHAR2(10) := 'meter';
IS
--assert that all inputs are greater than 0
--and less than a reasonable amount
v_result := meter_in * height_in * bottom_in;
IF show_dims_in = 1
THEN
DBMS_OUTPUT(meter_in ||' '||v_unit||', '||height_in||' '||v_unit||', '||bottom_in);
END IF;
RETURN v_result;
END F_REKTANGULÄR;
END POOL_PKG;
и может быть использован таким образом DECLARE v_result НОМЕР (9); BEGIN v_result: = POOL_PKG.F_REKTANGULÄR (6, 4, 2,1); END;
Или, учитывая ваши комментарии, это будет работать на:
Declare
a NUMBER(9);
b NUMBER(9);
c NUMBER(9);
v_unit VARCHAR2(10) := 'meter';
v_result NUMBER(9);
BEGIN
a := 6;
b := 4;
c := 2;
DBMS_OUTPUT(a||' '||v_unit||', '||b||' '||v_unit||', '||c||' '||v_unit);
v_result := POOL_PKG.F_REKTANGULÄR(a ,b ,c);
END;
К сожалению было немного поторопиться :-) Хорошо, я попробую. Я хочу, чтобы выход был таким: 6 метров, 4 метра и 2 метра. –
Это работает .. ty very much .. :)) –
Не можете ли вы изменить dbms_output? CREATE OR REPLACE PROCEDURE P_POOL IS НАЧАТЬ DBMS_OUTPUT.PUT_LINE (POOL_PKG.F_REKTANGULÄR (6,4,1.5)); Невозможно выбрать значение 6 сначала и распечатать после, затем 4, чтобы получить следующее: spec: Длина 6 метров, нижняя 2 метра, высота 1,5 метра ..? У меня есть хранимая процедура, которая вызывается этой функцией. –