1

如何在描述符中插入 SQLSET 类型?

首先,我准备并使用绑定变量声明游标:

select * from account where aco_no in ( ? ) and ..;

我的目标是替换“?” 在带有帐户列表('123','234')的打开光标中。语句的光标准备一次(服务器启动),然后用不同的数据(帐户列表的大小)打开几次(服务启动)。我的目标是使用 IN() 运算符准备光标并将帐户列表作为绑定变量传递。

Open is by 声明:

$OPEN :cur USING SQL DESCRIPTOR :descWhere;

其中 descWhere 是服务创建的描述符(设置描述符语句)。

如果我使用简单类型(SQLCHAR itp.)Exp:

$SET DESCRIPTOR :desc VALUE :size
            TYPE = :type,
            LENGTH = :NO_LEN;
$SET DESCRIPTOR :desc VALUE :size
                DATA = :szBuffor;

如何插入描述符类型 SQLSET、SQLLIST、.. 如果可以做到,它是否可以使用 IN() 运算符?

4

1 回答 1

0

在我看来,在你的情况下使用描述符是一个错误。描述符是一种在你编写代码时不知道你的语句时应该使用的机制,例如:当你不知道你会选择什么类型的数据时。

在您的情况下,您应该在运行时声明、打开和执行您的语句,就像普通的动态 SQL 语句一样。通常声明游标不会给您带来那么多性能优势(与选择成本相比)。如果您需要更高的选择性能,我建议您检查数组获取而不是使用游标。

无论如何,如果您更喜欢使用游标,请记住 CLOSE 游标和 FREE 描述的语句不要超过可用内存。

也请查看本文以进行性能调整。

于 2016-06-30T11:21:45.440 回答