刚开始用PLSQL,好多问题啊!1、如何通过字符串变量构造一个SQL语句,然后调用EXECUTE执行,请写个简单例子,如果能结合下面的问题写最好。2、对于类似in ('aaa','bbb','ccc','ddd')的语句,其中的('aaa','bbb','ccc','ddd')是不是要定义成专门的类型。如何定义和赋值?如何定义这种类型的数组?3、我写如下的命令(示意)
   a:=1000;
   s:='select * from table where aa=a';
   execute s;
   其中的a能够被正确初始化么?

解决方案 »

  1.   

    :)
    PL/SQL DEVELOPER这个工具不错
    in固定的话就用固定值,如果是符合某个条件的,就用exists来做了。
    声明varchar2类型的变量,构造sql
    excute immediately sql 就可以了。
      

  2.   

    ls_a       VARCHAR2(10);
    ls_s       VARCHAR2(100);ls_a := 'aaaa'
    ls_s := 'select * from table where aa='||ls_a
    excute immediately ls_s;
      

  3.   

    2中的是指符合in ('aaa','bbb','ccc','ddd')的条件
      

  4.   

    请大虾们看看第二个问题
    我需要类似一个数组
    (('aaa','bbb'),('aaa','ccc','ddd'),...('eee'...))
      

  5.   

    your_col in ('aaa','bbb','ccc','ddd')
    可以替换为
    instr('aaa,bbb,ccc,ddd',your_col)>0
    虽然稍微损失些效率……