锁定老帖子 主题:动态SQL
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-23
最后修改:2010-10-29
1。有时候静态SQL很笨,很木馁, temp_str 的值应该为'A123','A23e' 侧执行下面的静态SQL却达不到实际的效果(select rwt.serial_number , rst.lot_no , from rst, rwt where rwt.serial_number in ('A123','A23e'))不会执行 下面的SQL select rwt.serial_number , 2。解决以上的办法只有 用动态SQL: 在含有 存储过程的包中 定义游标 create or replace package SMT_user_package is type H_Numbers is ref cursor; 此存储过程中的SQL: temp_str 是变量=chr(39) || first_str || ''',''' || mid_number || chr(39); string s_sql; s_sql='select rwt.serial_number , open Lot_numbers for s_sql; 侧执行上面的SQL字符串到达实际的效果(select rwt.serial_number , rst.lot_no , from rst, rwt where rwt.serial_number in ('A123','A23e')) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-23
既然是存储过程,当temp_str的值有很多的时候,
可以考虑把temp_str的值插入临时表 这样检索依据就成为以下形式, select rwt.serial_number , rst.lot_no , from rst, rwt inner join temp_table x on rwt.serial_number = x.temp_str |
|
返回顶楼 | |
浏览 3070 次