我有DEPT(DEPTNO,DNAME,LOC)表和一些数据。
我想查询所有搜索键为DNAME的部门。
我正在尝试类似下面的内容,但不能正常工作。任何人都可以建议我。我是oracle的新手。
dynamicDeptName varchar2(30):= 'cco';
execute immediate 'select * from dept where dname like '%' || dynamicDeptName || '%'
答案 0 :(得分:2)
使用绑定变量,它更容易,更好(更高效,更安全)
单引号需要在单引号字符串中加倍。
示例:
execute immediate
'select * from dept where dname like ''%'' || :dname || ''%'''
into dept_rec
using dynamicDeptName;
或者使用q-quote语法以避免需要加倍引号:
execute immediate
q'[select * from dept where dname like '%' || :dname || '%']'
into dept_rec
using dynamicDeptName;