一条sql可能是解决不了,楼主是用来作什么啊

解决方案 »

  1.   

    如果有可以实现的!!我真的很感谢呀!!
    我急着用!!我知道一条sql 语句是不行!
      

  2.   

    存储过程返回结果集的方式可以解决
    或者动态创建视图。两者的原理都是一样的,通过动态的创建sql语句来解决。
      

  3.   

    try:未测试create or replace procedure proc_demo as
    cursor c_a is select * from a;
    v_sql varchar2(2000);
    i number;
    begin
    v_sql:='create or replace view v_name as select t_spc,t_cxh,';
    for c_temp in c_a loop
      v_sql:=v_sql||'sum(decode(t_dm,'''||c_temp.t_dm||''',1,0)) '||c_temp.t_dj||'
    end loop;
      v_sql:=substr(v_sql,1,length(v_sql)-1)||' from b group by t_spc,t_cxh';
    execute immediate v_sql;
    end proc_demo;
    /
     
    select * from v_name;
      

  4.   

    PLS-00103: 出现符号 "FROM"在需要下列之一时:
     . ( * @ % & = - + ; < / >
       at in is mod not rem <an exponent (**)> <> or != or ~= >= <=
       <> and or like between ||
      

  5.   

    try:未测试create or replace procedure proc_demo as
    cursor c_a is select * from a;
    v_sql varchar2(2000);
    i number;
    begin
    v_sql:='create or replace view v_name as select t_spc,t_cxh,';
    for c_temp in c_a loop
      v_sql:=v_sql||'sum(decode(t_dm,'''||c_temp.t_dm||''',1,0)) '||c_temp.t_dj||','
    end loop;
      v_sql:=substr(v_sql,1,length(v_sql)-1)||' from b group by t_spc,t_cxh';
    execute immediate v_sql;
    end proc_demo;
    /
    exec proc_demo; 
    select * from v_name;
      

  6.   

    ORA-01031: 权限不足
    ORA-06512: 在"LRY.PROC_DEMO", line 11
    ORA-06512: 在line 2问以下 for c_temp in c_a loop 中的 c_temp 没有定义可以吗!! 
    还有
    (t_dm,'''||c_temp.t_dm||''',1,0)) '||c_temp.t_dj||','  这个地方是不是应该加 ";"号~
    要不然运行出错!
      

  7.   

    是的,需要加上;号try:
    connect system/manager
    grant create any view to username;