oracle的存储过程中不能用create等Dml语句的,想想别的办法吧,要不就提前建好临时表,要不就建一个公共表,如果你只为使用中间结果,可以使用这样的查询语句:select * from (select * from tbname where ..) where ..
  另外就只能使用变量了,先建一个Table型变量,类型是你要查询的结果集,可以用%Type得到,这样将中间结果保存在这个变量中,就可以了。
  当然不一定非要Table型变量,还有好多可以保存中间结果的办法,但既然是中间结果,就一定要开支内存,希望不要保存太多的数据,否则Oracle数据库会累死的。注意内存开支问题。如果使用中间库表,就不用考虑内存问题了,因为数据库表的数据可以自动的保存到硬盘上,数据交换不需要我们管理,但这个中间表一定要建好,数据分析时可能要麻烦些。  建议看看PL/Sql,祝你成功。