set echo offset termout onset serveroutput on size 10000set lines 120set pages 20000set trimspool onDECLARE CURSOR C_DR_OPERATION_LOG IS SELECT OPERATION_LOG_NO ,SYS_ENTRY_USER_INFO_CD FROM XXXTH_DR_OPERATION_LOG WHERE SCREEN_NM = '初回電子署名同意' AND SCREEN_ID = 'addin-dr-001.0014' AND ( ACTION = '「同意」ボタン押下' OR ACTION LIKE '電子署名%' ) AND CHOSA_CD IS NULL AND CONTRACT_CD IS NULL; V_CHOSA_CD_A XXXTH_DR_OPERATION_LOG.CHOSA_CD%TYPE; V_CONTRACT_CD_A XXXTH_DR_OPERATION_LOG.CONTRACT_CD%TYPE; ROWCOUNT NUMBER := 0; BEGIN DBMS_OUTPUT.PUT_LINE('#------------------------------------ 更新を開始します。 ------------------------------------#'); FOR C_DR_OPERATION_LOG_REC IN C_DR_OPERATION_LOG LOOP --調査コードを更新 UPDATE XXXTH_DR_OPERATION_LOG SET CHOSA_CD = (SELECT CHOSA_CD FROM XXXTR_CONTRACT_DR_USER WHERE USER_INFO_CD = C_DR_OPERATION_LOG_REC.SYS_ENTRY_USER_INFO_CD) ,SYS_UPDATE_DATETIME = SYSDATE ,SYS_UPDATE_USER_INFO_CD = 'SYSTEM' WHERE OPERATION_LOG_NO = C_DR_OPERATION_LOG_REC.OPERATION_LOG_NO; SELECT CHOSA_CD INTO V_CHOSA_CD_A FROM XXXTH_DR_OPERATION_LOG WHERE OPERATION_LOG_NO = C_DR_OPERATION_LOG_REC.OPERATION_LOG_NO; --契約コードを更新 UPDATE XXXTH_DR_OPERATION_LOG SET CONTRACT_CD = (SELECT CONTRACT_CD FROM XXXTR_CONTRACT_DR_USER WHERE USER_INFO_CD = C_DR_OPERATION_LOG_REC.SYS_ENTRY_USER_INFO_CD) ,SYS_UPDATE_DATETIME = SYSDATE ,SYS_UPDATE_USER_INFO_CD = 'SYSTEM' WHERE OPERATION_LOG_NO = C_DR_OPERATION_LOG_REC.OPERATION_LOG_NO; ROWCOUNT := C_DR_OPERATION_LOG%ROWCOUNT; SELECT CONTRACT_CD INTO V_CONTRACT_CD_A FROM XXXTH_DR_OPERATION_LOG WHERE OPERATION_LOG_NO = C_DR_OPERATION_LOG_REC.OPERATION_LOG_NO; DBMS_OUTPUT.PUT_LINE('オペレーションログ番号 : ' || C_DR_OPERATION_LOG_REC.OPERATION_LOG_NO || ' 更新後 ? ' ||'CHOSA_CD : ' || V_CHOSA_CD_A || ' ,' || 'CONTRACT_CD : ' || V_CONTRACT_CD_A); END LOOP; DBMS_OUTPUT.PUT_LINE('#------------------------------------- ' || ROWCOUNT || '行更新されました -------------------------------------#'); COMMIT;EXCEPTION WHEN OTHERS THEN ROLLBACK; DBMS_OUTPUT.PUT_LINE('ロールバックしました。');END;/?
详细解决方案
plsql 块一个小事例(循环更新,游标使用)
热度:127 发布时间:2016-05-05 15:04:51.0
相关解决方案
- plsql 里怎么判断密码长度大于等于6
- java-plsql 有关问题
- PlSql 如何查询一张表使得orderID相同就合并那几行数据的某一行数据
- PLSQL 撤销有关问题
- win7x64上安装oraclex64版本后,plsql Developer无法登录的有关问题
- 如何用 PLSQL Developer 创建新的oracle数据库
- PLSQL 批量安插更新
- plsql Developer工具使用异常
- plsql 与 sqlplus 查询结果不一致,该怎么处理
- plsql oracle脚本,导出数据条目不一样?解决思路
- plsql 是不是有辦法將 Schema 的 Table 清單 拉出來成一個視窗
- PLSQL 新计算机装了 11g, 开启后找不到可以连接的资料库清单><
- 为啥监听没有启动,plsql dev客户端依然可以连接数据库呢
- 为何监听没有启动,plsql dev客户端依然可以连接数据库呢
- PLSQL 登录oracle数据库出现 “无法解析指定的连接标识符”异常
- plsql 客户端连接远程 oracle 服务查询卡住,该怎么处理
- plsql,该如何处理
- PLSQL develop连不上数据库解决思路
- Win7 64 安装oracle11g plsql 配置完后查询数据中文显示乱码,该怎么处理
- 求大神 PLSQL 使用,该怎么处理
- 求大神 PLSQL 使用,该如何解决
- plsql developer 到底如何显示dbms_output
- plsql 8.0怎么在windows server 2008下连64bit 的Oracle 11g client
- plsql 联接本地oracle连接不上 昨天还好使
- PLSQL 查询乱码有关问题
- plsql 没法弹出数据表对应的字段
- PLSQL Developer连接64位oracle 11.2.0.1.0遇到难以想象的有关问题
- plsql deveploer软件奇怪有关问题
- PLSQL developer从ORACLE中导出的TSV资料中有空行
- plsql 无监听程序,该如何解决