问几个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
虽然稍微损失些效率……