日期:2014-05-17  浏览次数:20903 次

问几个oracle PLSQL的问题,各位帮忙啊!
刚开始用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能够被正确初始化么?


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

ls_a := 'aaaa '
ls_s := 'select * from table where aa= '||ls_a
excute immediately ls_s;
------解决方案--------------------
2中的是指符合in ( 'aaa ', 'bbb ', 'ccc ', 'ddd ')的条件
------解决方案--------------------
没有搞过这样的。。。
------解决方案--------------------
your_col in ( 'aaa ', 'bbb ', 'ccc ', 'ddd ')
可以替换为
instr( 'aaa,bbb,ccc,ddd ',your_col)> 0
虽然稍微损失些效率……