Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42153
  • 博文数量: 7
  • 博客积分: 257
  • 博客等级: 二等列兵
  • 技术积分: 118
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-09 22:13
文章分类
文章存档

2012年(5)

2011年(2)

我的朋友

分类: Oracle

2011-10-31 20:21:01

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

  5. }
  6. EXEC SQL DECLARE test_cur for sqlstr;
2.不用left join 关键字
  1. EXEC SQL declare test_cur for select bt1 a , tb2 b where a.fd1(+)=b.fd1;

阅读(697) | 评论(0) | 转发(0) |
0

上一篇:sql

下一篇:shell 文件批量改后缀

给主人留下些什么吧!~~