解决Oracle批量修改问题

问题:根据唯一字段编码修改其它字段,修改部分数据,数量在上万条数据,数据大,一开始就卡死了!笨办法,一条一条修改不知可年可月啊。其他方法个人原因实在是无能为力。如下:

update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2V';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2W';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2X';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2Y';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2Z';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-31';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-32';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-33';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-34';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-35';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-36';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-37';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-38';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-39';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3A';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3B';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3C';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3D';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3E';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3F';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3G';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3H';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3I';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3J';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3K';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3L';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3M';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3N';
update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-3O';
....

百度结果:百度了一下,很多解决方案,有的写的很粗糙,完全不理解,也许自己水平问题。有的是自己真的看不懂,个人水平跟不上。

解决方案:最后的解决办法,还是老办法,就是新建一张临时表(表B:a_2017 ),把所修改的唯一字段编码和修改后的数据放在B表。sql大体如下(原表A:ka02_new ,唯一字段aka060 ,修改的字段分别为aka065 和aka166 ):

update ka02_new b
  set b.aka065 =
    (SELECT a.aka065 FROM a_2017 a WHERE a.aka060 = b.aka060),
    b.aka166 =
    (SELECT a.aka166 FROM a_2017 a WHERE a.aka060 = b.aka060)
 WHERE b.aka060 in (SELECT a.aka060 FROM a_2017 a);

总结

以上所述是小编给大家介绍的解决Oracle批量修改问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Win7 64位下PowerDesigner连接64位Oracle11g数据库

    本教程为大家分享了PowerDesigner连接64位Oracle11g数据库的方法,供大家参考,具体内容如下 操作系统:WIN7 64旗舰版 Oracle版本:64位11g PowerDesigner版本:15.1 问题描述:因为PowerDesigner是32的程序,连接数据库会默认开启32位的ODBC,因此无法使用Oracle11g的驱动程序 解决方法:下载安装Oracle11g客户端win32_11gR2_client.zip => 选择客户端的提供程序连接Oracle 详细步骤: 1.

  • Oracle addBatch()用法实例详解

    Oracle addBatch()用法实例详解 PreparedStatement.addbatch()的使用 Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用. 1.建立链接     Connection connection =getConnection(); 2.不自动 Commit connection.setAutoCommit(false); 3.预编译SQL语句,只编译一回哦,效

  • Oracle安装卸载图文教程详解

    ORACLE安装与卸载步骤详解,供大家参考,具体内容如下 ORACLE安装步骤 1. 将win32_11gR2_database_1of2.zip与win32_11gR2_database_1of2.zip 解压到当前目录(PS:选中两个压缩包后右键解压到当前文件夹:必须同时解压,不能单独解压否则会覆盖文件) 2. 解压完成后设置文件兼容性: 进入 database文件夹 右键点击 setup.exe 属性-兼容性 3. 双击 setup.exe 进行安装 出现 doc窗口后 等待出现安装界面(

  • Oracle查看表结构的几种方法示例代码

    1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) 显示的结果如下: 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- NAME NCHAR(6) ADDR NVARCHAR2(16) SAL NUMBER(9,2) 2,DBMS_METADATA.GET_DDL包 使用方法如下: SQL> S

  • 详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图如下: 4.该截图说明权限不够,需要添加scott用户的权限. 5.增加权限语句如下: SQL> show user USER 为"SCOTT" SQL> connect system 输入口令: 已连接. SQL> show user USER 为"SYSTE

  • pl/sql连接远程oracle服务器的配置教程

    本文为大家分享了pl/sql连接远程oracle服务器的配置教程,具体内容如下 方法1: 打开所有程序->找到oracle-oradb11g-home1->Net Configuration Assistant 本地网络服务名配置,点击下一步 选择添加,点击下一步 填写服务名(注数据库名),点击下一步 选择通信协议:TCP,下一步 填写数据库所在的主机名(也可以是IP地址),选择端口号(根据数据库所在的主机的端口号进行选择,一般是标准端口号),点击下一步,选择测试,点击下一步 ok,到此结束.

  • Oracle查询最近几天每小时归档日志产生数量的脚本写法

    下面给大家分享Oracle查询最近几天每小时归档日志产生数量的脚本写法,脚本如下所示: SELECT SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) Day, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'00',1,0)) H00, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS

  • oracle表空间的创建及dmp 文件的导入(推荐)

    --用oracle系统权限的账号 登陆 -- 1.创建用户 create user u_name identified by "u_password"; --2.赋予权限 grant dba, resource, connect to u_name; grant create session to u_name; grant create table to u_name; grant create view to u_name; grant create tablespace to u

  • 解决Oracle批量修改问题

    问题:根据唯一字段编码修改其它字段,修改部分数据,数量在上万条数据,数据大,一开始就卡死了!笨办法,一条一条修改不知可年可月啊.其他方法个人原因实在是无能为力.如下: update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2V'; update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2W'; update ka02_new

  • 解决PL/SQL修改Oracle存储过程编译就卡死的问题

    问题描述: 这里我用的是Plsql dev客户端,然后修改存储过程编译就卡死,我一直以为是客户端的问题,其实并不然,是因为sessionid什么玩意的被占用了.只需要执行几行命令就可以了.原因的话就是可能有人在执行存储过程,所以你这边修改就会卡死. 问题解决: 可能这些命令有点陌生,这个不重要,只要按着来执行即可. 第一步:获取session_jd select * FROM dba_ddl_locks where name =upper('存储过程名称'); 第二步:根据session_id获

  • 巧妙解决Oracle NClob读写问题(经验分享)

    最近一个新项目中,尝试在 Oracle 数据库中使用 NCLOB 来保存大的 xml 字符串. 在代码自动生成工具(通过 JDBC 驱动程序,读数据库表结构,自动生成对应的 java 代码,包含增加.删除.修改.分页查询.根据主键查找等前台 html/js.后台代码 java),将 NCLOB 字段映射到 String 类型. 运行代码,无报错.使用 SQuirreL SQL 客户端查看数据,觉察数据未保存成功. 网上搜一通,有提到用 SetBigStringTryClob  的数据库连接额外属

  • ORACLE批量导入图片到BLOB字段代码示例

    要插入图片的表不是固定的,而且是批量插入很多张,还要考虑到因为图片的文件名错误,修改后要再次插入,此时应避免已经插入的重复执行操作, 浪费时间. 所以就选择先用一张临时表来暂时保存从文件系统读取的照片,用DBMS_LOB的方法来处理. 第一步:创建一个数据库可以访问的目录(注意:这个目录是数据库服务器上的目录,不是客户机上的) -- Create directory create or replace directory 图片目录 as 'E:\照片'; 第二步:将图片文件放入刚建好的目录下面,

  • Oracle批量导入文本文件快速的方法(sqlldr实现)

    前言 最近做项目的时候需要导入一批3000多万条的POI数据到Oracle数据库,简单的插入导入速度太慢,使用sqlldr 批量导入3000多万条数据花了20分钟左右,速度还可以,现在分享给大家,具体方法如下: 1.新建导入控制文件 input.ctl,文件内容如下: Load data Characterset UTF8 Infile 'H:\POI\baidu.txt' Append into table tbl_poi_baidu fields terminated by ","

  • 解决Oracle数据库归档日志占满磁盘空间问题

    1.常用命令 SQL> show parameter log_archive_dest; SQL> archive log list; SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; ARCHIVELOG 96.62 0 141 SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage; 2.9904 SQL> show paramete

  • python批量修改xml属性的实现方式

    今天来说说xml那些事儿.如何批量修改指定文件夹下的xml文件的指定属性.分三步走,首先,我们先看看如何读写单个 的xml文件;第二步,来看看如何遍历指定文件夹下的所有文件,获取到所有文件的文件名;第三步,我们来看看一二之间 该如何衔接.好,lets do it step1:对单个xml文件进行读写 给定一个xml文件: <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>

  • 解决mybatis批量更新(update foreach)失败的问题

    如下所示: <!--批量更新报表 --> <update id="updateIssueByBatch" parameterType="java.util.List"> <foreach collection="issueList" item="item" index="index" separator=";"> update sys_issue &l

  • Python快速优雅的批量修改Word文档样式

    需求描述 手上现有若干份财务分析报告的Word文档,如下: 每一份Word文档中的内容如下: 为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示 步骤分析和前置知识 为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(document) - 段落(paragraph) - 文字块(run) 三级结构组成: 从需求反馈中可以看出,本质上我们需要做的就是对所有含有资金的文字块Run进行样式调整 因此,本需求的逻辑如下: 1.创建一个空文件夹(用于存放修改后的财务报告

  • Android批量修改文件格式/文件名的神操作分享

    目录 前言 1. 使用 shell 脚本批量修改文件格式/文件名 2. 使用 DocumentFile 批量修改文件格式/文件名 关于 DocumentFile 和 DocumentsContract** 需求扩展 总结 前言 有时候可能会遇到需要批量修改文件格式的需求,但百度了很久都没有找到相关的应用什么的,于是学过两天 Android 的我想自己去弄一个 APP 来实现这个需求. 1. 使用 shell 脚本批量修改文件格式/文件名 第一种方法是我第一次成功的方法,因为 android 本身

随机推荐