动态SQL,先拼接成字符串,然后动态执行,具体用法百度
解决方案 »
- 目前能替代SQLPLUS最好的工具是什么啊
- oracle 11g 自己建立的listener跟OWB
- mysql迁移到oracle出错:未能执行脚本。请手动删除资料档案库,然后重试
- 请问下SQL trace 的问题
- oracle连接错误(据说是字符集问题)
- [紧急求助]Oracle10g出现如下问题,盼高手帮忙看看!
- VS2008 oracle10g pro*c程序问题
- 请问登录PL/SQL Developer后能不能通过语句访问MSSqlServer的数据
- 关于exp和imp的问题
- 来讨论一下!
- pl/sql 远程连接数据库 ora-12154,连接本地数据没问题,求助大神
- 求Oracle Application Server 10g Release 2
select a.a from (select a from a)a,(select a from b)b where ....
如果结果是多条可以采用动态游标实现,open cursor for
多条记录,但是需要不同的查询结果做表连接呢,想静态的select那样,可以实现吗?
Declare
---define cursor type name
type cur_type is ref cursor;
cur_policy cur_type;
sqlStr varchar2(500);
rec_policy t_contract_master%rowtype;
begin
---define 动态Sql
sqlStr := 'select cm.policy_code, cm.applicant_id, cm.period_prem,cm.bank_code,cm.bank_account from t_contract_master cm
where cm.liability_state = 2
and cm.policy_type = 1
and cm.policy_cate in (2,3,4)
and rownum < 5
order by cm.policy_code desc ';
---Open Cursor
open cur_policy for sqlStr;
loop
fetch cur_policy into rec_policy.policy_code, rec_policy.applicant_id, rec_policy.period_prem,rec_policy.bank_code,rec_policy.bank_account;
exit when cur_policy%notfound;
Dbms_Output.put_line('Policy_code:'||rec_policy.policy_code);
end loop;
close cur_policy;
end;