求个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数据库导出表格,存储过程,以及导出触发器之类的方法。 

解决方案 »

  1.   

    用游标返回?
    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;
      

  2.   

    楼上正确,我已经作出来了,来结贴,请看下第二个问题啊数据库导入导出。。
    还有个动态sql语句的问题,貌似
    excute immidiate 这个东西要ddl才行?
    我用的直接 excute immidiate +一个select的字符串不行呢,但copye出来,不用动态表名就成。(开始就是这么写,用动态一直抱错,晕死)
      

  3.   

    动态执行select语句的时候需要将值赋给变量
    比如
    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;导入导出我不太熟悉
    搜下吧,应该有很多答案。等别人来解答
      

  4.   

    导入用 imp,导出用exp 是数据的导入和导出;这个备份用的
      

  5.   

    导入导出参考下面的文章http://blog.csdn.net/wh62592855/archive/2009/09/29/4614003.aspx