Oracle中的动态sql
如何根据if-else语句在oracle中创建动态sqlOracle中的动态sql,sql,oracle,dynamic-sql,Sql,Oracle,Dynamic Sql,如何根据if-else语句在oracle中创建动态sql sql:= 'select n from where a = p_a'; if p_b is not null then sql:= 'select n from where a = p_a and b = p_b'; 当您可以执行以下操作时,为什么需要动态SQL select n from xx where a = p_a and (b = p_b or p_b is null); 示例: CREATE TYPE t_emp
sql:= 'select n from where a = p_a';
if p_b is not null then
sql:= 'select n from where a = p_a and b = p_b';
当您可以执行以下操作时,为什么需要动态SQL
select n
from xx
where a = p_a and (b = p_b or p_b is null);
示例:
CREATE TYPE t_emp AS OBJECT (id NUMBER, name VARCHAR2(20))
/
CREATE TYPE t_emplist AS TABLE OF t_emp
/
CREATE TABLE dept_new (id NUMBER, emps t_emplist)
NESTED TABLE emps STORE AS emp_table;
INSERT INTO dept_new VALUES (
10,
t_emplist(
t_emp(1, 'SCOTT'),
t_emp(2, 'BRUCE')));
DECLARE
deptid NUMBER;
ename VARCHAR2(20);
BEGIN
EXECUTE IMMEDIATE 'SELECT d.id, e.name
FROM dept_new d, TABLE(d.emps) e -- not allowed in static SQL
-- in PL/SQL
WHERE e.id = 1'
INTO deptid, ename;
END;
/
您可以结合自己的逻辑,根据需要的条件构造命令
听说过
立即执行
?@Gondon感谢您的帮助,但需要我concatane sql查询。此查询不起作用。Maheswaran对不起,我不再查看。我找到了不同的解决方案。再次感谢。