Reputation: 1621
I have DEPT(DEPTNO, DNAME, LOC) table with some data.
I would like to query for all departments with search key as DNAME.
I am trying something like below, but not working. Can anyone please suggest me. I am pretty new to oracle.
dynamicDeptName varchar2(30):= 'cco';
execute immediate 'select * from dept where dname like '%' || dynamicDeptName || '%'
Upvotes: 0
Views: 83
Reputation: 132750
Use bind variables, it is easier as well as better (more efficient and secure)
Single quotes need to be doubled-up inside a single-quoted string.
Example:
execute immediate
'select * from dept where dname like ''%'' || :dname || ''%'''
into dept_rec
using dynamicDeptName;
Or use q-quote syntax to avoid need to double-up the quotes:
execute immediate
q'[select * from dept where dname like '%' || :dname || '%']'
into dept_rec
using dynamicDeptName;
Upvotes: 2