首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 存储过程写法 [已结贴,结贴人:denmarka]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 18:53:46 楼主
    请问
    create or replace procedure img_insert (filename varchar2) as

        f_lob bfile;

        b_lob blob;
        num int;
      begin
        num  :=  0;
        while  num <100  loop 
        insert into person (id,pname,birth,document) values (seq_person.nextval,'aaa',sysdate,empty_blob ()) return document into b_lob;
        f_lob:= bfilename ('AAA', filename);

        dbms_lob.fileopen (f_lob, dbms_lob.file_readonly);

        dbms_lob.loadfromfile (b_lob, f_lob,

        dbms_lob.getlength (f_lob));

        dbms_lob.fileclose (f_lob);
        end loop;
      commit;

      end;


    执行方法是 exec img_insert('1.jpg');

    插入一条没问题,加上循环就半天没反应了
    这个写的有哪里有问题?数据也没插入
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 19:58:471楼 得分:0
    num没有赋值,造成死循环了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fosjos
    • 等级:
    发表于:2008-05-21 20:42:432楼 得分:0
    楼主用for吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 22:16:263楼 得分:0
    create or replace procedure img_insert (filename varchar2) as

        f_lob bfile;

        b_lob blob;
        num int;
      begin
        num  :=  0;
        while  num <100  loop 
        insert into person (id,pname,birth,document) values (seq_person.nextval,'aaa',sysdate,empty_blob ()) return document into b_lob;
        f_lob:= bfilename ('AAA', filename);

        dbms_lob.fileopen (f_lob, dbms_lob.file_readonly);

        dbms_lob.loadfromfile (b_lob, f_lob,

        dbms_lob.getlength (f_lob));

        dbms_lob.fileclose (f_lob);
        end loop;
       
        num := num+1;--漏了这句吧?
      commit;

      end;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 08:56:424楼 得分:0
    谢谢大家
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 12:54:125楼 得分:20
    num := num+1;--漏了这句吧?
    这句话应该在
    end loop 之上吧
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved