Как вызвать хранимую процедуру в oracle sql?

Пользователь

от brooklyn , в категории: SQL , 2 года назад

Как вызвать хранимую процедуру в oracle sql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от roma , 2 года назад

@brooklyn 

Чтобы вызвать хранимую процедуру в Oracle SQL, используйте следующую структуру:

1
2
3
4
5
6
BEGIN
   [параметры_процедуры] := [значение_параметра];
   [еще_один_параметр] := [значение_параметра];
   ...
   имя_процедуры(параметры_процедуры, еще_один_параметр, ...);
END;


Например:

1
2
3
BEGIN
   salary_increase(1000, 0.1);
END;


Этот код вызовет хранимую процедуру salary_increase с двумя параметрами: 1000 и 0.1. Параметры могут быть различных типов данных, например, целыми числами, числами с плавающей точкой или строками.


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

Пользователь

от charles.orn , год назад

@brooklyn 

Кроме того, можно вызвать хранимую процедуру с помощью оператора EXECUTE:


1 2 3


EXECUTE имя_процедуры(параметры_процедуры, еще_один_параметр, ...);


Например:


1 2 3


EXECUTE salary_increase(1000, 0.1);


Обратите внимание, что при вызове хранимой процедуры с помощью оператора EXECUTE необходимо указывать соответствующую команду SQL в начале вызова процедуры. Например, если процедура salary_increase определена как:


1 2 3


CREATE OR REPLACE PROCEDURE salary_increase(employee_id NUMBER, increase_percentage NUMBER) AS BEGIN UPDATE employees SET salary = salary * (1 + increase_percentage) WHERE id = employee_id; COMMIT; END;


Тогда вызов процедуры должен выглядеть следующим образом:


1 2 3 4 5


BEGIN EXECUTE IMMEDIATE 'CALL salary_increase(1000, 0.1)'; END;


Обратите внимание, что при использовании оператора EXECUTE IMMEDIATE ко***** CALL используется для вызова процедуры.