[code=SQL][/code]
SELECT distinct pa.person_id person_id --编号
,past.user_status p_status --状态
,jbt.name job_name --职务
,hr_general.decode_position_latest_name(pa.position_id) position_name --职位
,gdt.name grade_name --等级
,otl.name orgnization_name --组织
,loctl.location_code p_location --地点
,papf.full_name supervisor_name --主管
,pa.probation_period p_period --试用期限
,hr_general.decode_lookup('QUALIFYING_UNITS', pa.probation_unit) probation_unit_meaning --单位
,pa.date_probation_end d_date_probation_end --试用期结束
,pa.normal_hours normal_hours --工作实数
,hr_general.decode_lookup('FREQUENCY', pa.frequency) frequency_meaning --频率
,pa.effective_start_date p_start_date --起始时间
,pa.effective_end_date p_end_date --终止时间
,pa.manager_flag manager_flag --经理
,pa.internal_address_line internal_address --内部地址
,ppp.org_payment_method_name --付款方法
FROM per_all_people_f papf
,per_jobs_tl jbt
,per_pay_bases pb
,per_all_assignments_f pa
,per_grades_tl gdt
,hr_locations_all_tl loctl
,pay_pre_payments_v4 ppp
,hr_all_organization_units_tl otl
,per_assignment_status_types_tl past
WHERE papf.person_id(+) = pa.person_id
AND pa.assignment_id(+) = ppp.assignment_id
AND jbt.job_id(+) = pa.job_id
AND pb.business_group_id = pa.business_group_id
AND papf.business_group_id = pa.business_group_id
AND pb.business_group_id = papf.business_group_id
AND gdt.grade_id = pa.grade_id
AND loctl.location_id = pa.location_id
AND ppp.payroll_id = pa.payroll_id
AND otl.organization_id = pa.organization_id
AND past.assignment_status_type_id = pa.assignment_status_type_id;
我在运行这段sql时报错,怎么能解决啊?我找了好久,就是在不加ppp这张表时不报错,报的错是
ora—01652:无法通过 128(在表空间temp1中)扩展temp段。
在线等啊,大神们
------解决方案--------------------
distinct 内存排序,内存不够使用temp 表空间,temp表空间沾满之后不能自动扩展导致sql报错。
这篇文章写得不错可以参考一下:
http://wenku.baidu.com/view/f7d18d8702d276a200292eed.html
解决方法:
1、根本方法当然是调优你的sql
2、扩大temp表空间,当然治标不治本,随着表数据量的增大还会出现类似问题。