免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3393 | 回复: 3
打印 上一主题 下一主题

关于EXEC SQL excute immediate 的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-02 17:24 |只看该作者 |倒序浏览
EXEC SQL BEGIN DECLARE SECTION;
         char sSqlStr[1024];   /*Y830 */
         EXEC SQL END DECLARE SECTION;
         memset(sSqlStr,0x00,sizeof(sSqlStr));

         sprintf(sSqlStr,"UPDATE %s..amsd \
                          SET    AMSD_NAME_LINE_1='%s',  \
                                 AMSD_ADDR_LINE_1='%s',  \  
                                 AMSD_CITY_STATE='%s',   \  
                                 AMSD_PHONE_NBR_2='%s',  \  
                                 AMSD_STORE_PN3='%s',    \   
                                 AMSD_PSTL_CD='%s',      \   
                                 AMSD_CONTACT_1='%s',    \  
                                 AMSD_STORE_LEVEL_C2='%s', \
                                 AMSD_STORE_PHONE='%s',  \
                                 AMSD_UPD_TIME='%s'      \
                                 WHERE                   \
                                 AMSD_STORE = '%s'",     
                                 pDb,
                                 AmsdAction.Amsd_Name_Line_1,   
                                  AmsdAction.Amsd_Addr_Line_1,   
                                  AmsdAction.Amsd_City_State,     
                                  AmsdAction.Amsd_Phone_Nbr_2,   
                                  AmsdAction.Amsd_Store_Pn3,      
                                  AmsdAction.Amsd_Pstl_Cd,        
                                  AmsdAction.Amsd_Contact_1,      
                                  AmsdAction.Amsd_Store_Level_C2,
                                  AmsdAction.Amsd_Store_Phone,   
                                  AmsdAction.Action_Time ,         
                                  AmsdAction.Amsd_Store );
          PrintBATLog("SQL[%s]",sSqlStr);                  
          EXEC SQL excute immediate :sSqlStr;
------------------------------------------------------
上面是原代码
UPDATE db001..amsd
SET AMSD_NAME_LINE_1='AMSD001',
AMSD_ADDR_LINE_1='(测试修改)         ',
AMSD_CITY_STATE='太原 ',
AMSD_PHONE_NBR_2='03510000000         ',
AMSD_STORE_PN3='818888999',
AMSD_PSTL_CD='030002    ',
AMSD_CONTACT_1='李XXX                                ',
AMSD_STORE_LEVEL_C2='2',
AMSD_STORE_PHONE='03510000000         ',
AMSD_UPD_TIME='20090401105121'
WHERE AMSD_STORE = '616000050'
运行中sSqlStr实际内容是上面这个

但运行到 EXEC SQL excute immediate :sSqlStr;时报如下错误

2009-04-02 17:10:59 :sqlca.sqlcode=-102;sqlmsg=Incorrect syntax near '@sql0_sSqlStr'

请大家帮忙看看是怎么回事  再此谢过啦。

[ 本帖最后由 isnobles 于 2009-4-2 17:26 编辑 ]

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
2 [报告]
发表于 2009-04-03 12:17 |只看该作者
最好检查一你的语法约定

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
3 [报告]
发表于 2009-04-03 14:14 |只看该作者
PrintBATLog("SQL[%s]",sSqlStr);
这个打印出来的sSqlStr,在isql里面执行是什么情况,能成功吗?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2009-04-19 22:56 |只看该作者
同 3 楼问

建议把 PrintBATLog("SQL[%s]",sSqlStr); 输出的信息打印出来,在 isql 中执行一下看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP