Informix存储过程动态SQL如何写?

readxlp 2003-10-17 05:15:41
i_length、s_jgdh都是变量,
let i_length =10;
select IDORGAN,SORGANNAMEB
from TB2_ORGAN
where IDORGAN[1,i_length] = s_jgdh;
//此处出错,如果where IDORGAN[1,i_length] = s_jgdh
//换成where IDORGAN[1,10] = s_jgdh就对了
请问我如何实现在SQL使用变量做成动态SQL?
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
readxlp 2003-10-24
  • 打赏
  • 举报
回复
搞定,见
http://expert.csdn.net/Expert/topic/2385/2385495.xml?temp=.1171839
readxlp 2003-10-24
  • 打赏
  • 举报
回复
搞定
readxlp 2003-10-22
  • 打赏
  • 举报
回复
delete from TE_GOUPMEMBER a
where
AGGREGATENO
not in
( select AGGREGATENO from TEMP_TE_GOUPMEMBER)
and
CUSTOMERID
not in
(select CUSTOMERID from TEMP_TE_GOUPMEMBER)
;
你这条SQL在Informix中通不过,继续,
谢谢!
readxlp 2003-10-20
  • 打赏
  • 举报
回复
let s_jgbh=s_jgbh + "%"
select IDORGAN,SORGANNAMEB
from TB2_ORGAN
where IDORGAN LIKE s_jgdh;

呵呵,谢谢!再问一个
delete from TE_GOUPMEMBER a
where not (((a.AGGREGATENO,a.CUSTOMERID)
in (select AGGREGATENO,CUSTOMERID from TEMP_TE_GOUPMEMBER))
);
应是要删除表TE_GOUPMEMBER 在表TEMP_TE_GOUPMEMBER中存在的记录,上面SQL语句竟通不过,哪位有好招!
fxiangh 2003-10-20
  • 打赏
  • 举报
回复
不知你看的是什么标准的SQL??
其实这个很简单
delete from TE_GOUPMEMBER a
where
AGGREGATENO
not in
( select AGGREGATENO from TEMP_TE_GOUPMEMBER)
and
CUSTOMERID
not in
(select AGGREGATENO,CUSTOMERID from TEMP_TE_GOUPMEMBER)
;
fxiangh 2003-10-19
  • 打赏
  • 举报
回复

你要换个思路:
想办法凑个i_length长的变量s_jgdh
象i_length=4,IDORGAN总长为10,则s_jgbh="XXXX??????"
select改成:
select IDORGAN,SORGANNAMEB
from TB2_ORGAN
where IDORGAN LIKE s_jgdh;
readxlp 2003-10-19
  • 打赏
  • 举报
回复
我用的是Informix7.3,同仁们有何办法如何解决?
wenlq 2003-10-17
  • 打赏
  • 举报
回复
低版本都不支持该功能,不知道高版本行不行。
用esql 是可以的。

1,194

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧