【发布时间】:2017-02-14 19:45:47
【问题描述】:
我想知道是否可以在 Firebird 1.5 的 SELECT 查询中返回不止一行,如下所示:
| FIELD1 | FIELD 2 |
--------------------
| 1.00 | 1 |
| 2.00 | 2 |
| 3.00 | 3 |
SET TERM /;
CREATE OR ALTER PROCEDURE TEST
RETURNS (VARIABLE1 DOUBLE PRECISION, VARIABLE2 INTEGER)
AS
BEGIN
SELECT FIELD1, FIELD2 FROM TABLE INTO :VARIABLE1, :VARIABLE2;
END/
EXECUTE PROCEDURE TEST/
SET TERM ;/
假设查询返回多个结果/行,则抛出以下错误:
语句失败,SQLCODE = -811
单例选择中的多行
显然,Firebird 的引擎不允许我在一个变量中返回多个值。我正在开发一个 Python 的软件,我想在其中获得一个元组,例如,基于过程 TEST。我正在使用 kinterbasdb 模块与 GDB 连接。
有没有办法做到这一点?
【问题讨论】:
-
出于好奇:你为什么还在使用 kinterbasdb?它已被 FDB 和 firebirdsql 等驱动程序取代。
标签: sql stored-procedures firebird