CALL
Function
CALL calls defined functions or stored procedures.
Precautions
None
Syntax
1 |
CALL [schema.] {func_name| procedure_name} ( param_expr );
|
Parameter Description
- schema
Specifies the name of the schema where a function or stored procedure is located.
- func_name
Specifies the name of the function or stored procedure to be called.
Value range: an existing function name
- param_expr
Specifies a list of parameters in the function. Use := or => to separate a parameter name and its value. This method allows parameters to be placed in any order. If only parameter values are in the list, the value order must be the same as that defined in the function or stored procedure.
Value range: names of existing function or stored procedure parameters
The parameters include input parameters (whose name and type are separated by IN) and output parameters (whose name and type are separated by OUT). When you run the CALL statement to call a function or stored procedure, the parameter list must contain an output parameter for non-overloaded functions. You can set the output parameter to a variable or any constant. For details, see Examples. For an overloaded package function, the parameter list can have no output parameter, but the function may not be found. If an output parameter is contained, it must be a constant.
Examples
1 2 3 4 5 6 |
CREATE FUNCTION func_add_sql(num1 integer, num2 integer) RETURN integer
AS
BEGIN
RETURN num1 + num2;
END;
/
|
1 |
CALL func_add_sql(1, 3);
|
1 2 |
CALL func_add_sql(num1 => 1,num2 => 3);
CALL func_add_sql(num2 := 2, num1 := 3);
|
1 |
DROP FUNCTION func_add_sql;
|
1 2 3 4 5 6 7 |
CREATE FUNCTION func_increment_sql(num1 IN integer, num2 IN integer, res OUT integer)
RETURN integer
AS
BEGIN
res := num1 + num2;
END;
/
|
1 |
CALL func_increment_sql(1,2,1);
|
1 2 3 4 5 6 7 |
DECLARE
res int;
BEGIN
func_increment_sql(1, 2, res);
dbms_output.put_line(res);
END;
/
|
1 2 3 4 5 6 7 8 9 |
create or replace procedure package_func_overload(col int, col2 out int) package
as
declare
col_type text;
begin
col := 122;
dbms_output.put_line('two out parameters ' || col2);
end;
/
|
1 2 3 4 5 6 7 8 9 |
create or replace procedure package_func_overload(col int, col2 out varchar) package
as
declare
col_type text;
begin
col2 := '122';
dbms_output.put_line('two varchar parameters ' || col2);
end;
/
|
1 2 |
call package_func_overload(1, 'test');
call package_func_overload(1, 1);
|
1 |
DROP FUNCTION func_increment_sql;
|
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot