最近公司做数据库迁移,proc中遇到的奇怪问题:
对类似以下的代码 proc总是编译不通过。报left join 为非法字符
- EXEC SQL declare test_cur for select tb1 a left join tb2 b on a.fd1=b.fd1;
解决办法:1.用动态sql
- sprintf(sCmd,"select tb1 a left join tb2 b on a.fd1=b.fd1");
- EXEC SQL prepare sqlstr from :sCmd;
- if()
- {
- }
- EXEC SQL DECLARE test_cur for sqlstr;
2.不用left join 关键字
- EXEC SQL declare test_cur for select bt1 a , tb2 b where a.fd1(+)=b.fd1;
阅读(697) | 评论(0) | 转发(0) |