starorion 发表于 2007-10-22 15:46

存储过程

请问在oracle中的
EXECUTE IMMEDIATE 'TRUNCATE TABLE *****';

在informix当中要怎么样表达?

xxyyy 发表于 2007-10-22 15:50

TRUNCATE这个关键字在informix 10中被支持,所以oracle中的那个语句,在informix 10和11中写法是一样的。
但informix9.4不支持,没有对应的语句。

starorion 发表于 2007-10-22 15:58

我的版本是11的.但是我那样写的时候报错了

上下句是这样的
BEGIN
    EXECUTE IMMEDIATE 'TRUNCATE TABLE ABC';
END;

错误报在table后面的那个空格,把TABLE去掉也报错,truncate 拿出来执行又是对的.
我把这几句话注掉检查整个存储过程就不会报任何错误.

xxyyy 发表于 2007-10-22 17:30

EXECUTE IMMEDIATE 属于动态SQL,而informix的存储过程是不支持动态SQL的。

你把
BEGIN
    EXECUTE IMMEDIATE 'TRUNCATE TABLE ABC';
END;

改成
BEGIN
    TRUNCATE TABLE ABC;
END;

就可以了

[ 本帖最后由 xxyyy 于 2007-10-22 17:31 编辑 ]
页: [1]
查看完整版本: 存储过程