gpt4 book ai didi

比较列(字符类型)在使用 proc 的 where 子句中使用主机变量

转载 作者:行者123 更新时间:2023-11-30 15:10:25 24 4
gpt4 key购买 nike

我正在使用 Oracle Pro*C。 sys_dt 在表中是 char(16) 类型,其值类似于“2016011113243456”。

char sysdt[24];
void get_log();
int main(){
int i = 0;
connect();
while( i < 5){
get_log();
i++;
}
}
void get_log(){
EXEC SQL SELECT *from mylog where sys_dt > :sysdt and rownum <=10 oder by sys_dt;
EXEC SQL SELECT max(sys_dt) INTO :sysdt where rownum <=10;
}

我希望总共选择50行,每次10行,每次将当前最大sys_dt存储到全局变量sysdt中,这样下次就会从最大sysdt继续

我想每次使用条件sys_dt > :sysdt时选择10行但在 WHERE 子句中 sys_dt > :sysdt 不起作用!我可以使用常量字符串运行 select * from mylog where sys_dt > '2016011113243456' and rownum <=10,但我真的想使用主机变量。

最佳答案

是这样的,不是吗?

#include <sqlca.h>

EXEC SQL BEGIN DECLARE SECTION;
char any[16+1];
char sysdt[16+1];
EXEC SQL END DECLARE SECTION;

int main(){
// here is connect()
strcpy(sysdt, "0");
memset(any, 0x00, sizeof(any));

EXEC SQL SELECT sys_dt INTO :any from mylog
where sys_dt > :sysdt and rownum <= 10;

关于比较列(字符类型)在使用 proc 的 where 子句中使用主机变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com