我在 PL/SQL 中定义了一个游标,我想知道从 Pro C 中使用它的最佳方法是什么。通常对于 Pro C 中定义的游标,您会这样做:
EXEC SQL DECLARE curs CURSOR FOR SELECT 1 FROM DUAL;
EXEC SQL OPEN curs;
EXEC SQL FETCH curs INTO :foo;
EXEC SQL CLOSE cusr;
我希望相同(或相似)的语法适用于打包的游标。例如,我有一个包 MyPack,带有声明
type MyType is record (X integer);
cursor MyCurs(x in integer) return MyType;
现在我在我的 Pro*C 代码中有一段相当不令人满意的嵌入式 PL/SQL,它可以打开光标、进行获取等,因为我无法让第一种语法工作。使用示例
EXEC SQL EXECUTE
DECLARE
XTable is table of MyPack.MyType;
BEGIN
OPEN MyPack.MyCurs(:param);
FETCH MyPack.MyCurs INTO XTable;
CLOSE MyPack.MyCurs;
END;
END-EXEC;
有谁知道是否有更“纯”的 Pro*C 方法?