请问:
    本人菜鸟一个。以前在pl/sql中,只是用sql window直接写sql语句进行查询。最近需要经常某个sql语句查询,但查询条件有变化。我想定义一个变量,然后在sql语句中调用这个参数来解决。我用了块结构,但不知如何显示结果。   在pl/sql中,如何定义及在sql语句中引用一个常量,同时要求查询结果在屏幕上显示出来?
  
    请支招或推荐有关这方面的电子图书。谢谢!

解决方案 »

  1.   

    查询条件有变化?如果是sql server用动态sqldeclare @sql as varchar(100)
    set @sql = '.........'if @sql is null 
       select * from tb
    else 
       exec('select * from tb ' + @sql)
      

  2.   

    declare 
      sql varchar2(100);
    begin
    EXECUTE IMMEDIATE sql into a ;end ;
      

  3.   

    declare
    sql varchar2(1000);
    begin
    sql := your sql;
    execute immediate sql;
    end;
      

  4.   

    begin
      execute immediate 'select * from emp where empid = :myid'
      using &id;
    end;
    /
      

  5.   

    SELECT *
    FROM   EMP
    WHERE  EMPNO = &IN_EMPNO;自己在SQL DEV中执行一下试试吧
      

  6.   

    另:
      Tom的书, Oracle9i/10g编程艺术及Oracle高级编程中, 好像是第二章, 都有讲过这种方法, 自己可以查找
      

  7.   


    declare
        var1 varchar2(10);
        var2 varchar2(10)
    begin
        var2 := 'xxxx';
        select col1 into var from tab where col2=var2;  --查询
        dbms_output.put_line(var);  --输出结果到界面
    end;
      

  8.   

    谢谢各位的回复。
    我的数据库是oracle。
    如果使用dbms_output.put_line(var);  那需要定义一个表结构的变量,对吧?
    我想在sql window 这个窗口可以直接运行的语句。用declare,begin end等需要在test window 中执行。