declare @x varchar(20)
set @x = 'Ma%'
select * from UserTable where UserName like @x需要把上面的句子翻译成Oracle的句子,要求还是用变量的形式拼凑select语句。

解决方案 »

  1.   

    应该是这样写
    declare
      x      varchar2(20);
      strSql varchar2(4000);
    begin
      x      := 'Ma%';
      strSql := 'select * from UserTable where UserName like ''' || x || '''';
      execute immediate strSql;
    end;
      

  2.   


    declare
      v_x    varchar2(20);
    begin
      v_x:= 'Ma%';
      select * from UserTable where UserName like '''||v_x||''';
    end;
    /
      

  3.   

    SQL> variable x varchar2(20);
    SQL> exec  :x:='Ma%';PL/SQL 过程已成功完成。SQL> select * from bas_employee where emp_name like :x;未选定行SQL>
      

  4.   

    declare
     v vachar(20);begin v = 'MA%'
     select * from bas_employee e where e.emp_name like '''||v||'''end