`
lffsonic
  • 浏览: 4561 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle中type is table 类型删除

阅读更多
最近写存储过程,遇到一个问题,使用批量插入数据老是出错,说违反唯一性约束,最后检查存储过程,发现type table数据没有删除而引起的,存储过程如下:
type type_char2 is table of NVARCHAR2(30) index by binary_integer; --定义一个字符串的临时表类型  
 v_card_id    type_char2;   
--下面是游标  
cursor cur_bt_data is  
    select * from test....;  
--遍历游标  
for bt_row in cur_bt_data loop  
    for i in 1 .. bt_row.confirm_quanlity loop   
      v_card_id(i) :=  to_number(bt_row.iccid_start)+i-1;  
    end loop;  
    forall i in 1 .. v_card_id.count  
      insert /*+ append */  
      into demo  
        (card_id,....)  
      values  
        (v_card_id(i),...);  
    commit;  
  end loop; -- [END]for 'cur_bt_data' 

发现里面的v_card_id(i)问题,如果查询的 bt_row.confirm_quanlity 数量一样,循环初始化,数据应该没有问题,如果数量不一样,如,前一次查询的数量大,后一次的数量小,v_card_id没有初始化后面的,就可能出现重复的结果,所有每次循环都必须清理临时表

查了相关资料,只需要使用v_card_id.delete就删除临时表

修改如下:
for bt_row in cur_bt_data loop  
   v_card_id.delete;  
    for i in 1 .. bt_row.confirm_quanlity loop  
..........  
分享到:
评论

相关推荐

    oracle 用表结构创建 type

    在Oracle数据库环境中,使用现有的表结构来创建Type是一种常见的需求,尤其当涉及到复杂的数据类型时。根据提供的文件信息,本文将详细介绍如何利用Oracle中的表结构自动生成Type,并深入探讨其中涉及的关键概念和...

    oracle object type

    Oracle对象类型是Oracle数据库系统中面向对象编程的关键概念,它允许开发者定义自定义的数据结构,同时结合了数据和操作这些数据的方法。Oracle对象类型由两个主要部分构成:对象类型头和对象类型体。类型头定义了...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...

    Oracle中把ArrayOracle中把

    在 Oracle 数据库中,将 Array 类型作为参数传递给存储过程是一种常见的操作,尤其是在需要处理大量数据时。Oracle 自身并没有内置的 Array 类型,但可以通过创建自定义的 Table 类型来模拟 Array 功能。以下是如何...

    ORACLE数组使用方法

    declare type v_table is table of varchar2(30) index by binary_integer; my_table v_table; 在上面的代码中,我们首先声明了一个可变数组类型 `v_table`,它可以存储任意数量的字符串元素。然后,我们创建了一个...

    使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作

    "使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作" Oracle Spatial 是 Oracle 数据库中的一个空间数据处理组件,用于存储、管理和操作空间数据。ArcSDE 是一个空间数据引擎,用于存储和管理大规模...

    Oracle的表结构转成Mysql的表结构

    - `i_number_default_type`: 指定Oracle中`NUMBER`类型的默认转换类型,默认为`decimal`。 - `i_auto_incretment_column_name`: 设置自增字段的名称规则,默认为`%ID`。 #### 函数实现 ```sql CREATE OR REPLACE ...

    Oracle中Using用法

    在 Oracle 中,SQL 语句可以分为两种类型:静态 SQL 和动态 SQL。静态 SQL 在编译期就已经确定,例如 SELECT 语句、INSERT 语句等。动态 SQL 则是在运行阶段才能确定,例如使用 EXECUTE IMMEDIATE 语句执行的 SQL ...

    oracle数组实现

    - **定义类型**: `type v_table is table of varchar2(30) index by binary_integer;` 定义了一个名为 `v_table` 的类型,它是一个通过BINARY_INTEGER索引的VARCHAR2(30)类型的表。 - **初始化数组**: `my_table v_...

    Oracle中树的操作

    TYPE TREE_TABLE IS TABLE OF SCOTT_TREE%ROWTYPE; -- 节点信息 PL/SQL LOOKUP LOOKUP; RECORDS TREE_TABLE; V_ID SCOTT_TREE.ID%TYPE; BEGIN SELECT ST.* BULK COLLECT INTO RECORDS FROM SCOTT_TREE ST ...

    C# 传入自定义列表List 到Oracle存储过程

    CREATE OR REPLACE PROCEDURE my_procedure (p_list IN MY_TYPE_TABLE) IS BEGIN -- 存储过程的逻辑,例如遍历数组并进行操作 END; ``` 2. **C#中创建Oracle连接和命令对象**: 使用Oracle.DataAccess.Client...

    Ibatis调用Oracle存储过程返回自定义类型

    本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...

    Oracle中EXECUTE IMMEDIATE用法

    TYPE emp_dtl_rec IS RECORD ( emp_no NUMBER(4), ename VARCHAR2(20), dept_no NUMBER(2) ); emp_dtl emp_dtl_rec; BEGIN EXECUTE IMMEDIATE 'SELECT emp_no, ename, dept_no FROM emp WHERE emp_no = 7934...

    oracle删除数据方法。

    TYPE ROWID_ARRAY IS TABLE OF ROWID INDEX BY BINARY_INTEGER; V_ROWID_ARRAY ROWID_ARRAY; CURSOR CUR_ROWID IS SELECT A.ROWID ROW_ID FROM B JOIN A ON A.KEYWORD = B.KEYWORD; ``` - `ROWID_ARRAY` 类型...

    Java调用oracle函数返回oracle类(类似)集合

    在Java中调用Oracle函数并处理返回的Oracle特定数据类型,如集合或索引表,通常涉及到Oracle的PL/SQL包和Java的JDBC驱动。以下是对这个主题的详细说明: 1. **Oracle索引表类型**: Oracle索引表是一种PL/SQL数据...

    oracle数组

    Oracle 数组是 Oracle 数据库中的一种复杂数据类型,可以存储多个元素。数组可以是固定大小的,也可以是可变大小的。在 Oracle 中,数组可以用来存储多个元素,并且可以对数组进行各种操作,例如遍历、插入、删除等...

    oracle function 返回结果集

    CREATE OR REPLACE TYPE Ns_IIS_GetPeriod_type IS TABLE OF Ns_IIS_GetPeriod_table; ``` 这里,`Ns_IIS_GetPeriod_table`定义了一个对象类型,它包含三个属性:描述字符串`dscp`、起始日期`firstDay`和结束日期`...

    Oracle数组的使用

    TYPE my_text_table_type IS TABLE OF VARCHAR2(200) INDEX BY BINARY_INTEGER; l_text_table my_text_table_type; l_index NUMBER; BEGIN FOR emp_rec IN (SELECT * FROM emp) LOOP l_text_table(emp_rec....

    skyline与oracle数据库坐标关联之oracle数据库操作说明

    在 Oracle 数据库中,需要添加 shape 字段,该字段类型为 SDO_GEOMETRY,数据库默认有该类型。添加到数据表中的语句如下: ALTER TABLE 表名 ADD (shape SDO_GEOMETRY); 二、给表 user_sdo_geom_metadata 添加数据...

Global site tag (gtag.js) - Google Analytics