求个sql语句,表格形式如下: A表
ID NAME TYPEID
1 n1 1
2 n2 1
3 n3 2
4 n4 1
5 n5 2
6 n6 1
B表
ID CODE
1 type1
2 type2
3 type3
A中的各个类型(TYPEID)字段和B表的ID关联,标示类型 要求:用一个游标返回,
统计表格A中的各个类型的数量有多少,也就是返回这样一个结果集合:
C表:返回的结果集合,经过对A,B表的查询
count typeid typecode
4 1 type1
2 2 type2 请教一个sql,紧急,非常感谢。。
另外,还求个oracle数据库导出表格,存储过程,以及导出触发器之类的方法。
ID NAME TYPEID
1 n1 1
2 n2 1
3 n3 2
4 n4 1
5 n5 2
6 n6 1
B表
ID CODE
1 type1
2 type2
3 type3
A中的各个类型(TYPEID)字段和B表的ID关联,标示类型 要求:用一个游标返回,
统计表格A中的各个类型的数量有多少,也就是返回这样一个结果集合:
C表:返回的结果集合,经过对A,B表的查询
count typeid typecode
4 1 type1
2 2 type2 请教一个sql,紧急,非常感谢。。
另外,还求个oracle数据库导出表格,存储过程,以及导出触发器之类的方法。
create or replace procedure proc(cur out sys_refcursor)
as
begin
open cur for
select count(1)count,a.typeid,b.code typecode
from a,b
where a.typeid=b.id
group by a.typeid,b.code;
end;
还有个动态sql语句的问题,貌似
excute immidiate 这个东西要ddl才行?
我用的直接 excute immidiate +一个select的字符串不行呢,但copye出来,不用动态表名就成。(开始就是这么写,用动态一直抱错,晕死)
比如
execute immediate 'select a from table1' into v_a;
这个适用于返回一条记录的时候
返回多条记录的话参考declare
type v is table of varchar2(20) index by binary_integer;
v_a v;
begin
execute immediate 'select name from largetest where rownum<100' bulk collect into v_a;
for i in 1..v_a.count loop
dbms_output.put_line(v_a(i));
end loop;
end;导入导出我不太熟悉
搜下吧,应该有很多答案。等别人来解答