`

清理重复姓名多个主键的I的存储过程 update 不成功

sql 
阅读更多
create or replace
PROCEDURE update_new(param in varchar2)  IS
CURSOR cur1 IS SELECT  l.id from leaguer l  where l.imei =param order by l.id desc;
curid number :=0;
idx number := 1;
maxId number;
msg varchar2(200);
BEGIN
BEGIN
OPEN cur1;
LOOP
  
FETCH cur1 INTO curid;
  EXIT WHEN cur1%NOTFOUND;
 
   dbms_output.put_line(curid);
  if idx = 1 then
maxId := curid;
idx :=2;
  else
   msg := to_char(maxId);
    msg := msg || '-';
   msg := msg || to_char(curid);

update PRODUCT_CLICK qb set qb.leaguer_id = maxId where qb.leaguer_id = curid;
  if sql%rowcount >0 then
      msg := msg ||' PRODUCT_CLICK ' ||to_char(sql%rowcount);
  end if;
     
 



dbms_output.put_line(msg);
msg := null;
   commit;
   end if;
  
END LOOP;
  CLOSE cur1;
 
END;
END update_new ;


CREATE OR REPLACE PROCEDURE loopImei IS
CURSOR cur1 IS SELECT imei from leaguer group by imei having count(imei)>1;
imei varchar(200);
BEGIN
BEGIN
OPEN cur1;
LOOP
  
FETCH cur1 INTO imei;
  EXIT WHEN cur1%NOTFOUND;

  if not imei is  null then
  -- dbms_output.put_line(imei);
update_new(imei);
  end if;
END LOOP;
  CLOSE cur1;
END;
END loopImei;


过程遇到的问题:
1、update不成功,因为我一开始curid的声明为id,而在leaguer表中就有id字段,变为curid即可。
总是遗漏end if;导致报错。

异常处理,写上后报错。未找到原因。
分享到:
评论

相关推荐

    IT基础知识测试借鉴.pdf

    同一张表可以有多个主键,但通常是单个列。外键用于维护与另一表(主表)的引用完整性,确保子表中的外键值对应主表中的有效主键值。一个表可以有多个外键。 9. **更新记录**:在SQL Server 2000中,更新所有学员...

    选择、判断、填空、简答(mysql).docx

    - 函数内不能直接使用SELECT查询,而存储过程可以返回多个结果集。 联系: - 两者都可以在服务器端执行,减少网络传输,提高性能。 - 可以重复使用,简化代码编写。 - 都可以控制权限,增强安全性。 2. ...

    jpa标注中文文档html格式

    3. **@Id**: 定义实体类中的属性为主键字段,每个实体至少有一个主键。默认情况下,JPA会尝试寻找名为"id"的属性作为主键。 4. **@GeneratedValue**: 与@Id配合使用,用于定义主键的生成策略。例如,可以设置为`...

    数据库面试基础知识.docx

    - **存储过程**:可以返回多个结果集,可以执行复杂的任务。 - **函数**:主要用于计算并返回单一结果。 14. **索引的作用及其优缺点** - **作用**:加快查询速度。 - **优点**:显著提高查询效率。 - **缺点*...

    MySQL数据库面试题.pdf

    18. **更新同一表内的两个列的值**:使用单个UPDATE语句更新多个列。 19. **GROUP BY和HAVING子句**:`GROUP BY`用于根据一个或多个列的值对结果集进行分组,`HAVING`则用于过滤这些分组。 20. **MySQL中的EXPLAIN...

    DynamoDB基本操作

    DynamoDB的数据模型基于键值对和文档存储,每个表都由一个主键定义,主键可以是单一属性(称为“分区键”)或由两个属性组成(称为“分区键”和“排序键”)。分区键是唯一的,用于决定数据在物理上的分布;排序键是...

    springmvc+spring+hibernate整合全注解

    综上所述,"springmvc+spring+hibernate整合全注解"项目涉及了现代Java Web开发中的多个关键组件。通过全注解的方式,我们可以减少XML配置,提高代码的可读性和可维护性。同时,结合Oracle数据库的存储过程和拦截器...

    SQL_Server_2000菜鸟入门_sqlserver_

    安装SQL Server 2000涉及到多个步骤,首先需要检查系统兼容性,确保操作系统版本、内存、硬盘空间等硬件配置满足最低需求。然后,运行安装程序,选择安装类型,一般有个人版、标准版和企业版等,根据实际需求选择。...

    sql server 数据库管理

    SQL Server数据库管理是IT行业中一个至关重要的领域,它涉及到数据存储、数据安全、性能优化以及系统维护等多个方面。本文将深入探讨SQL Server数据库的基础知识、常用命令和日常管理经验。 一、SQL Server基础 ...

    mysql详细学习笔记

    - 一张表只能有一个主键,但可以有多个唯一键。 #### 修改表时添加约束 - `ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;` #### 修改时删除约束 - `ALTER TABLE table_name ...

    达内云笔记sql文件 cloud_note.zip

    4. 视图和存储过程:视图是基于一个或多个表的虚拟表,提供了一种简化数据查询的方式。存储过程是一组预编译的SQL语句,常用于执行复杂的数据库操作。在“cloud_note.sql”中,可能存在视图和存储过程,以提高查询...

    sqlserver2008数据库实例练习

    4. **存储过程和触发器**:存储过程是一组预编译的SQL语句,可以封装成一个可重复使用的单元,便于管理和执行。触发器则是在特定数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行的代码段,常用于实现业务规则...

    中兴公司ORACLE数据库培训

    - **Oracle 块**: 是最小的数据存储单位,由多个块组成一个区。 - **管理表存储区**: 创建表时可以指定表的存储属性,如PCTFREE和PCTUSED。 - **管理表空间**: 表空间是数据库中最大的逻辑存储单位,可以创建、调整...

    数据库.zip

    本压缩包“数据库.zip”包含了一系列SQL脚本,用于数据库管理和操作的实验,涵盖了从创建数据库到复杂查询、索引和维护等多个方面。接下来,我们将详细探讨这些实验涉及的数据库知识点。 1. **实验 C2 - 创建数据库...

    mysql开发规范文档

    - 避免隐式类型转换、存储过程、触发器等,减少数据库耦合。 - 避免大表JOIN,使用单表主键/二级索引查询。 - 减少数据库交互次数,利用批量操作,如INSERT...ON DUPLICATE KEY UPDATE等。 - 避免大SQL,拆分为...

    计算机二级《MySQL数据库程序设计》知识点总结.docx

    计算机二级《MySQL数据库程序设计》知识点涵盖了数据操作、表操作、索引管理、视图、存储过程和函数、触发器与事件、事务处理、用户权限、备份与恢复以及数据库维护等多个方面。以下是对这些关键知识点的详细解释: ...

    在线通讯录(手机)SQL(2)

    这个数据库可能包含多个表,如`Contacts`表用于存储联系人信息,`PhoneNumbers`表用于存储电话号码,`UserDetails`表用于存储用户的其他个人信息。表结构设计时,会考虑到数据的一致性、完整性和安全性,确保每个...

    MySQL5 文档

    综上所述,“MySQL5 chm文档”涵盖了MySQL5的安装配置、SQL语法、安全管理、性能优化、备份恢复、复制与高可用性等多个方面的内容,对于学习和使用MySQL5的用户来说,是一份极其宝贵的参考资料。通过深入研读这份...

    图书馆管理系统(学校的)

    在MySQL中,我们可以创建多个表来存储不同类型的图书信息,如图书表、读者表、借阅记录表等。 图书表中,字段可能包括图书编号、书名、作者、出版社、出版年份、分类号、库存数量等。读者表则需要包含读者ID、姓名...

Global site tag (gtag.js) - Google Analytics