- 论坛徽章:
- 0
|
程序片段如下:
1 int ttGgpt_batch_log_Countcardid( )
2 {
3 EXEC SQL BEGIN DECLARE SECTION;
4 char batchdate[21];
5 EXEC SQL END DECLARE SECTION;
6
7 sqlca.sqlcode=111;
8 memset(batchdate,0x00,sizeof(batchdate));
9 printf("begin \n");
10
11 EXEC SQL SELECT abc INTO :batchdate FROM dual12345;
12 printf("11sqlcode=[%d],batchdate=[%s]\n",sqlca.sqlcode,batchdate);
13
14 EXEC SQL SELECT abc INTO :batchdate FROM dual12345;
15 printf("12sqlcode=[%d],batchdate=[%s]\n",sqlca.sqlcode,batchdate);
16
17 printf("end \n");
18
19 return 0;
20 }
可执行程序结果如下
begin
11sqlcode=[0],batchdate=[1234567 ]
12sqlcode=[-942],batchdate=[1234567 ]
end
疑问的是:第11行和第14行一模一样,为啥第一次执行sqlcode=0(不正常结果),第二次sqlcode=-942(正常结果),输出的1234567 是上一个程序段输出的结果。
PS:编译环境 Linux Red Hat Enterprise Linux Server release 5.8 (Tikanga)
数据库 ORACLE Release 11.2.0.1.0 |
|