当前位置: 数据库>oracle
oracle 声明游标(不具备字段)规则应用
来源: 互联网 发布时间:2014-09-07
本文导语: 在开发过程中可能会声明一个含有某张表不具备字段的游标,来解决特殊问题,本文将详细介绍这类问题,需要了解更多的朋友可以参考下其中,data.*是一张表,然后把其他表中的字段也加到sal_data的游标中 Sql代码 代码如下: cur...
在开发过程中可能会声明一个含有某张表不具备字段的游标,来解决特殊问题,本文将详细介绍这类问题,需要了解更多的朋友可以参考下
其中,data.*是一张表,然后把其他表中的字段也加到sal_data的游标中
Sql代码
cursor sal_data(cp_center_temp_id varchar2) is
select data.*,
post.id emp_post_id,
doc.Salary_Tax_Bd sa_tax_bd,
batch.bill_year_month bill_year_month,
batch.id batch_id,
post.emp_id employee_id
from sa_salary_data data
left join sa_salary_batch batch
on data.sa_batch_id = batch.id
left join sa_salary_document doc
on data.sa_doc_id = doc.id
left join pb_emp_post post
on doc.emp_post_id = post.id
left join pb_send send
on post.send_id = send.id
where send.cost_center_id = cp_center_temp_id;
使用此游标:
声明一个此游标类型的变量:
Sql代码
salary_data_temp sal_data%rowtype;
然后编译此游标
Sql代码
open sal_data(center_temp.id);
loop
fetch sal_data
into salary_data_temp;
exit when sal_data%notfound;
--TODO
end loop;
colse sal_data;
其中,data.*是一张表,然后把其他表中的字段也加到sal_data的游标中
Sql代码
代码如下:
cursor sal_data(cp_center_temp_id varchar2) is
select data.*,
post.id emp_post_id,
doc.Salary_Tax_Bd sa_tax_bd,
batch.bill_year_month bill_year_month,
batch.id batch_id,
post.emp_id employee_id
from sa_salary_data data
left join sa_salary_batch batch
on data.sa_batch_id = batch.id
left join sa_salary_document doc
on data.sa_doc_id = doc.id
left join pb_emp_post post
on doc.emp_post_id = post.id
left join pb_send send
on post.send_id = send.id
where send.cost_center_id = cp_center_temp_id;
使用此游标:
声明一个此游标类型的变量:
Sql代码
代码如下:
salary_data_temp sal_data%rowtype;
然后编译此游标
Sql代码
代码如下:
open sal_data(center_temp.id);
loop
fetch sal_data
into salary_data_temp;
exit when sal_data%notfound;
--TODO
end loop;
colse sal_data;