诡异的proc程序,麻烦高手帮忙看看
程序片段如下:1 int ttGgpt_batch_log_Countcardid( )
2 {
3 EXEC SQL BEGIN DECLARE SECTION;
4 char batchdate;
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 :batchdateFROM dual12345;
12 printf("11sqlcode=[%d],batchdate=[%s]\n",sqlca.sqlcode,batchdate);
13
14 EXEC SQL SELECT abc INTO :batchdateFROM dual12345;
15 printf("12sqlcode=[%d],batchdate=[%s]\n",sqlca.sqlcode,batchdate);
16
17 printf("end\n");
18
19 return 0;
20 }
可执行程序结果如下
begin
11sqlcode=,batchdate=
12sqlcode=[-942],batchdate=
end
疑问的是:第11行和第14行一模一样,为啥第一次执行sqlcode=0(不正常结果),第二次sqlcode=-942(正常结果),输出的1234567 是上一个程序段输出的结果。
PS:编译环境 LinuxRed HatEnterprise Linux Server release 5.8 (Tikanga)
数据库 ORACLERelease 11.2.0.1.0 有人看吗,别下沉没了啊,..... 左岸流沙 发表于 2016-06-15 11:21 static/image/common/back.gif
程序片段如下:
1 int ttGgpt_batch_log_Countcardid( )
2 {
第一个正常。第二个异常。因为你没清除第一个的值。 第一个不正常啊,这个表 dual12345根本不存在啊,所以他的sqlcode不应该为0 有人再,帮忙看看么,
页:
[1]