我的数据是个不定长的结构数据,怎样编写一个存储过程来全部插入数据呢?谢谢

解决方案 »

  1.   

    比如:表名:t,共有字段t1(关键字),t2;结构:为struct T{char t1;char t2};
    我的待插入表t的数据是一个链表(不定长),链表的每一项为结构T,这样的存储
    过程怎样写呢?我希望以此插入全部的数据,要求速度很快!我现在是每循环一条记录,调用以此存储过程,插入一条,这样是不是效率不高啊?谢谢
      

  2.   

    表类型变量和数组,很相似,实质都是变长的,只是指定的最大数目TYPE nested_type IS TABLE OF VARCHAR2(20);
    TYPE varray_type IS VARRAY(50) OF INTEGER;他们的方法也是一样的
    EXISTS
    COUNT
    LIMIT
    FIRST and LAST
    PRIOR and NEXT
    EXTEND
    TRIM
    DELETE遍历形式如:
    FOR i IN 1..vs.COUNT LOOP ...
    i := vs.FIRST;
    WHILE i IS NOT NULL LOOP
      ......  i := vs.NEXT(i);
    END LOOP;
      

  3.   

    yaozw_mountain(山林)数组是定长的阿TYPE varray_type IS VARRAY(50) OF INTEGER;
    长度不就是固定了50么
    好像不能是变长啊
      

  4.   

    指定的最大数目,声明后并没有分配空间的
    实际上,还是需要用一个extend一个的
      

  5.   

    yaozw_mountain(山林) 一般前台程序数组都可以用变量定义
    数目基本是不固定的,可以使2,也可以是几千,甚至几万
    那着后台的数组数目不是要很大很大(即使没用上)
    这也太不好了
      

  6.   

    yaozw_mountain(山林) 我只能想到用索引表解决
      

  7.   

    我的原始数据是个二进制文件包,不过要按格式解开并解释出来入库,
    一般包含很多条记录,可不可以在存储过程中按格式解开并解释一起入库呢?谢谢是不是需要在全部插入完成后再commit呢?
      

  8.   

    是不是需要在全部插入完成后再commit呢?
    --如果想全部成功or全部不成功
      那就完成后加commit