大家好,请教个问题,用PROC调用数据时,如下可以将返回之存到变量minute中
EXEC SQL SELECT count(*) INTO :minute当select返回值有多行多列时,怎样保存到多个变量中呢(想要下面的三个数值)?谢谢!例如语句返回值如下:
avgtalk
1 80.904388
2 139.175
3 125.6
EXEC SQL SELECT count(*) INTO :minute当select返回值有多行多列时,怎样保存到多个变量中呢(想要下面的三个数值)?谢谢!例如语句返回值如下:
avgtalk
1 80.904388
2 139.175
3 125.6
[oracle@DB2 proc]$ ./t10
Connect oracle success...
avg ok.
,´ÇM,
[oracle@DB2 proc]$
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "/home/oracle/product/OraHome/precomp/public/sqlca.h"EXEC SQL INCLUDE SQLCA;struct avg_talk_t {
char ICall_Chinese[64];
char ICall_English[64];
char RemoteService[64];
};int main(void) {
int ret; EXEC SQL BEGIN DECLARE SECTION; char conn_db[64]="app_user/123456@mydata"; struct avg_talk_t avg_talk; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :conn_db; if(sqlca.sqlcode==0) {
printf("Connect oracle success...\n");
}
else {
printf("%s",sqlca.sqlerrm.sqlerrmc);
return -1;
} EXEC SQL SELECT sum((time_callend-time_callconnect)*24*3600)/count(*) INTO :avg_talk from calldata t where to_char(time_callstart,'yyyymmdd')='20130529' and queueid is not null group by queueid;
printf("avg ok.\n"); printf("%s,%s,%s\n",avg_talk.ICall_Chinese,avg_talk.ICall_English,avg_talk.RemoteService); return 0;
}
avgtalk
1 80.904388
2 139.175
3 125.6 查询语句:
EXEC SQL SELECT sum((time_callend-time_callconnect)*24*3600)/count(*) INTO :avg_talk from calldata t where to_char(time_callstart,'yyyymmdd')='20130529' and queueid is not null group by queueid;
int a[3]
INTO :a谢谢各位回复!