本帖最后由 lixiaolong09 于 2010-12-11 21:19:33 编辑

解决方案 »

  1.   

    楼主分好多啊 /*
    oracle过程的语法
    declare
    ... 定义变量
    begin
    ....
    具体的操作
    exception ...
    end;
    */
    --大概修改未经测试
    declare   --未命名的过程用declare
    t_smsid  NUMBER;  --你定义变量的语法错误 位置错
    t_mobileno nvarchar2;  
    t_smsfrom  NUMBER;   
    t_content  nvarchar2;  
    begin  --begin位置错误
    OPEN out_data FOR
            SELECT smsid,mobileno,smsfrom,content 
            FROM SMS_SEND 
            where smsid in (in_strSmsId);
    loop                        
       fetch out_data into t_smsid,t_mobileno,t_smsfrom,t_content;
       exit when out_data%NOTFOUND; --循环退出条
       insert into SMS_SENDED VALUES (t_smsid,t_smsid,1,1,sysdate,'',0,'','','000001');
       commit; --提交
    end loop;
    close out_data; --关闭游标
    exception when others then  
     rollback;--异常处理
    end;
      

  2.   

    问题可不是出现这里 呵呵 if out_data%FOUND then     多余