这是工作首次使用ORACLE 存储过程现在情况是这样的:有很多基础表,现在要根据客户需求从这些基础表中分别取不同的字段来拼成一个客户需要的大表,也就是比如A表,我取A1,A5,A8,A9,A12字段,存为AA表,B表我取B1,B3,B9,B18,B22字段,存为BB表,C表我取C12,C33,C55,C66,C22字段,存为CC表,还有很多。存储过程如何写,因为要用到很多临时表,望高手给段 code 参考参考,谢谢 万分感谢我是不是要在存储过程中把这些要取的字段先生成一张表比如,AA,BB,CC,然后再把数据取出来放到AA,BB,CC里,在通过条件勾到一起去。还有可不可以通过临时表来实现,因为有很多表要选出一部分数据来构成一张大表的,大概十五六个吧,有什么比较通用的方法吗还有在存储过程中动态建的表,在数据库中是不是要事先存在,能不能 不建表结构而直接用 insert into mytable1(select a,b,c,d,e,f from mytable2) 的方式向表mytable1中查数据
sql 2005 有 select a,b,c,d into #temp_table from mytable2 的方法,oracle 有没不带参数的存储过程 在调用的时候 exec proc1() 括号 还要吗 谢谢
sql 2005 有 select a,b,c,d into #temp_table from mytable2 的方法,oracle 有没不带参数的存储过程 在调用的时候 exec proc1() 括号 还要吗 谢谢
解决方案 »
- 请问一下oracle的insert操作是否随着数据量的增加,insert执行的速度就变慢了?
- SELECT BLOB字段的问题
- 问一个小问题,关于PLSQL Developer的
- 一个查询的问题,请问如何做才可以实现?
- 帮忙看看这个四张表关联删除操作的SQL语句如何写
- 如何将多行记录的某String形字段的内容拼接起来?
- 怎样将查询结果存放在一个文件名带有日期信息的txt文件中?
- 只想对表中一个Long型的字段求和,其他混合有字串,如何实现
- oracle9i 中,创建一个用户后为什么不能用他登陆Enterprise Manager Console?
- 回滚段修改的问题:
- 求一SQL
- oracle存储过程返回值
is
begin
execute immediate 'create table aa as select a1,a5,a8,a9,a12 from a';
commit;
execute immediate 'create table bb as select b1,b3,b9,b18,b22 from b';
commit;
execute immediate 'create table final as select c1,c2,c3 from aa,bb where ...';
commit;
execute immediate 'drop table aa';
execute immediate 'drop table bb';
commit;
exception
when others then
raise;
end proc;
/
动态建的表不需要事先存在,
不带参数的存储过程 在调用的时候 exec proc1;
在PROCEDURE中
create procedure proc2
id
begin
proc1;
end proc2;
比sqlserver好
[1] 存储过程如何写,这里很难讲清楚了,主要是要了解plsql的一些概念和语法,很多地方和tsql一致,不过有一些地方和tsql有区别
可以见贴
"plsql与tsql的语法不同" http://bbs.inthirties.com/viewthread.jsp?tid=10&extra=page%3D1
"plsql和tsql常用函数比对" http://bbs.inthirties.com/viewthread.jsp?tid=9&extra=page%3D1 [2]存储过程中动态建的表,在数据库中是不是要事先存在建临时表,预先建立好。临时表有session级别和transaction级别
详见
http://blog.csdn.net/inthirties/archive/2009/08/06/4420030.aspx
[3]sql 2005 有 select a,b,c,d into #temp_table from mytable2 的方法,oracle 有没
oracle有这样的用法,不过方式不一样,如下是oracle的用法
insert into temp_table select a,b,c,d i from mytable2[4] 不带参数的存储过程 在调用的时候 exec proc1()
不需要