|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-04-23
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')) 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间: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
|
|
| 返回顶楼 | |
浏览 124 次



