【发布时间】:2016-09-06 21:18:18
【问题描述】:
我想将表中的一列数据提取到主机数组中。在我的表中,DOB 是整数类型。我的 C++ 代码如下所示:
EXEC SQL BEGIN DECLARE SECTION;
int birthdays[10];
EXEC SQL END DECLARE SECTION;
...//Code to connect with the database
EXEC SQL EXECUTE
DECLARE
...
BEGIN
SELECT DOB INTO :birthdays FROM DRIVER_LICENSE WHERE DL_NUMBER < 10;
END
DOB 列是整数类型,并且 DRIVER_LICENSE 表中的 DL_NUMBERS 从 0 开始编号。当我尝试编译它时,我得到错误“PLS-S-00597,INTO 列表中的表达式“BIRTHDAYS”是类型错误”
如果它不在执行中,我可以运行选择。 C++ 代码:
EXEC SQL BEGIN DECLARE SECTION;
int birthdays[10];
EXEC SQL END DECLARE SECTION;
SQL EXEC SELECT DOB INTO :birthdays FROM DRIVER_LICENSE WHERE DL_NUMBER < 10;
给我 DRIVER_LICENSE 表的 DOB 列中的数字。
我正在尝试使用 PL/SQL 来整合大量 SQL 调用,以尽量减少与服务器的通信。我可以通过循环游标将信息放入 C++ 生日数组中,并一次将值分配给生日数组元素,但这似乎效率很低。
【问题讨论】: