sybase - 过程 returns 上一个结果集
sybase - procedure returns previous result set
我有一个包含 2 selects 的程序,看起来像这样...
PROCEDURE getRec
@pId INTEGER
AS
BEGIN
SELECT 'anything'
SELECT id, name
FROM my_table
WHERE id = @pId
END
当我的 perl 脚本调用这个存储过程时,如果 my_table
有一个匹配的记录就会显示出来。但是,如果传入的 ID 没有匹配项,则存储过程 returns 'anything'
.
如果第二个 select 中没有行,那么我只希望过程 return 一个空结果集。我怎样才能做到这一点?
每个 SELECT 都会产生一个结果集(SELECT @var = ...除外)
因此将首先收到 'anything' 结果集
之后,您将收到空结果集。
您需要让您的 perl 代码获取第一个结果集中的所有行,然后获取下一个结果集并获取该结果集中的所有行。
获取下一个结果集的函数将在很大程度上取决于您使用的 perl 库。
我有一个包含 2 selects 的程序,看起来像这样...
PROCEDURE getRec
@pId INTEGER
AS
BEGIN
SELECT 'anything'
SELECT id, name
FROM my_table
WHERE id = @pId
END
当我的 perl 脚本调用这个存储过程时,如果 my_table
有一个匹配的记录就会显示出来。但是,如果传入的 ID 没有匹配项,则存储过程 returns 'anything'
.
如果第二个 select 中没有行,那么我只希望过程 return 一个空结果集。我怎样才能做到这一点?
每个 SELECT 都会产生一个结果集(SELECT @var = ...除外)
因此将首先收到 'anything' 结果集
之后,您将收到空结果集。
您需要让您的 perl 代码获取第一个结果集中的所有行,然后获取下一个结果集并获取该结果集中的所有行。
获取下一个结果集的函数将在很大程度上取决于您使用的 perl 库。