agamer 发表于 2007-09-17 16:21

请教:存储过程中能否执行动态SQL语句

比如要在存储过程中根据传入的字段参数进行查询

create procedure test1(afield varchar(10)
select * from table1 where afield>10;??
end procedure;

或者是:

create procedure test1()
let asql:='select * from table2 into temp ttmp1';
执行asql;
end procedure;

请教各位大拿,在存储过程里面怎么写才可以。

xxyyy 发表于 2007-09-17 17:43

sql server的存储过程支持动态sql,informix的ec程序支持。
informix的存储过程不支持动态sql

shanshl 发表于 2007-09-19 09:38

informix存储过程中不支持的,在4Gl或ESQL/C中可以。

agamer 发表于 2007-09-27 14:49

谢谢,我已经死心了

ivhb 发表于 2007-09-27 18:31

死心是对的。
存储过程,存储的是什么?不光是代码本身,还有执行计划等。
这使的以后执行,不必再解析代码,每次都生成执行计划。由此带来了存储过程的效率提升。
但是反过来,也就限制了存储过程,不能执行动态的sql语句。
页: [1]
查看完整版本: 请教:存储过程中能否执行动态SQL语句