I want to use the REPLACE function in the Where clause to replace a character that I put into a input box. For example if I input R123;R321
I want it to change my input to R123','R321
.
Example of my query:
x
Select
order_no
From
order
Where
order_no in ('&Order_No')
I input the data with this box:
Any help would be appreciated, or if there is some other way to do it without the REPLACE function.
Advertisement
Answer
That won’t work like this, I’m afraid. You’ll have to split input value into rows, e.g.
SQL> select deptno, ename
2 from emp
3 where deptno in (select regexp_substr('&&deptnos', '[^;]+', 1, level)
4 from dual
5 connect by level <= regexp_count('&&deptnos', ';') + 1
6 )
7 order by deptno, ename;
Enter value for deptnos: 10;20
DEPTNO ENAME
---------- ----------
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
8 rows selected.
SQL>