谁给我写过多条件查询的存储过程 谢谢
  要求:1,查询所有的
        2,根据name,sex查询
        3,根据name sex age查询
        4,根据name age查询--表如下:
create table tb_test(id number(4),
                    name varchar2(20),
                    sex varchar2(4),
                    age number(3),
                    address varchar2(100),
                    tel varchar2(20),
                    email varchar2(20)
                    )
                    

解决方案 »

  1.   

    create or replace procedure tb_test_proc(
      i_name in  tb_test.name%type,
      i_sex  in  tb_test.sex%type,
      i_age  in  tb_test.age%type,
      o_cur  out sys_refcursor
    )
    is
      v_sql varchar2(4000);
    begin
      v_sql := 'select id, name, sex, age, address, tel, email from tb_test 
                 where ( name = :i_name or :i_name is null )
           and ( sex  = :i_sex  or :i_sex is null )
           and ( age  = :i_age  or :i_age is null ) ';
      open o_cur for v_sql using i_name, i_sex, i_age;
    end;
    /