How To Pass Multiple Values (IN Clause Query) in Stored Procedure of Oracle DB
First, We create temporary table with data:
create table temp_tab(col1 varchar2(100));
insert into temp_tab values('3456');
insert into temp_tab values('5678');
insert into temp_tab values('1234');
select * from temp_tab where col1 IN ('3456','1234');
As, Observed give the value which exist in table based on value pass multiple way in Where clause.
For Eg:
create or replace procedure sp_temp (p1 in varchar2)
as
val varchar2(10);
begin
select col1 into val from temp_tab where col1 in (p1);
dbms_output.put_line(val);
end;
exec sp_temp ('1234');
Result:
1234
But, What about multiple value pass?
exec sp_temp('1234','3456');
Error:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SP_TEMP'
Means:We can't pass two value as we have one parameter in sp_temp
But, What about multiple value pass in one parameter?
exec sp_temp('1234,3456');
Error:
ORA-01403: no data found ORA-06512
Means, There is no data exist in our table 1234,3456
How we achieve to understand passing multiple value in parameter and retrieve from table as like simple IN Clause.
For that, require to use dynamic SQL in stored procedure
exec sp_temp ('1234,3456');
Statement processed.
3456
1234
For that, require to request on below button. You will receive solution on same day with session.