假设有一strSQL="SELECT * FROM TABLE_A"
根据ESQL动态SQL方法四:由此可得到一个DESCRIPTOR dp
PREPARE p_select FROM :strSQL;
DESCRIBE SELECT LIST FOR p_select INTO dp;
DECLARE d_cur FOR p_select;
FETCH d_cur USING DESCRIPTOR dp;
这样就可以获取动态SQL的结果集;但是为什么以下的方法就会报-1001:invalid cursor错误呢?
假设有存储过程如下:
sp_query(pcur out pkg_test.return_cursor)
{
    OPEN pcur FOR SELECT * FROM TABLE_A;
}
存储过程已经经过测试是可以正确返回游标变量以及获取数据的
那么现在:
SQL_CURSOR dcur;
PREPARE p_select FROM :strSQL;
DESCRIBE SELECT LIST FOR p_select INTO dp;
然后
ALLOCATE :dcur;
FETCH :dcur USING DESCRIPTOR dp;
就会报-1001错误了
不能这样使用游标变量和DESCRIPTOR吗?