• Oracl中sql书写技巧


    1、写脚本
    (1)为什么不直接设置回滚点?
    因为服务器上数据库是很多人使用的,所以除了自己操作外,有很多人操作。
    如果设置回滚点时,回滚后,很多人操作都消失了,因此savepoint不可以。
    但是可以自己书写脚本,然后设置回滚。
    (2)写脚本需要三个文件
    第一、必须备份需要修改的数据(create table t_table_name_日期 as select * from t_table_name);
    第二、修改操作;
    第三、回滚操作(insert into t_table_name select * from t_table_name_日期、
    merge into t_table_name t1 using t_table_name_日期 t2 on (t1.属性=t2.属性 ) when matched then update
    set t1.修改过的属性=t2.修改前属性
    )
    (3)写脚本过程中注意问题
    1)逻辑一定要屡清楚,操作必须是先备份,然后修改,最后回滚。
    2)只需要备份你修改的东西,同时也是只能修改备份东西,否则回滚一定会失败。
    (4)脚本书写完成之后一定记得自己测试,查看数据是否回滚成功,只有回滚成功才能认为脚本书写成功,否则即为失败。
    2、如何进行重现错误(比如:重复承保到达极限)
    (1)测试服务器:
    http://172.20.11.14:7001/admin/  
    http://172.20.11.14:7002/datahub.ws/services  多个接口服务
    http://172.20.11.14:7003/datahub.ws.customer/services/ 客户接口服务(客户税优查询、客户信息确认、客户既往理赔查询)
    (2)通过soapui调用项目原子服务
    1)在测试服务器中WebService中找到相应描述WSDL;
    2)在soapui中调用,输入正确用户名、密码、保单号
    3)启动服务,进行承保操作;
    3、当多表操作涉及外键时,一定要注意,删除时先要删除有依赖关系的表,最后删除没有依赖关系的表;
    但是,回滚的时候,一定要先回滚没有依赖关系的表,最后回滚有依赖关系的表
    4、查询错误时,一定要注意技巧性查询:
    (1)巧用UE百度编辑器(当多条重复性修改时,可以通过在excel中自动生成来实现,在通过百度编辑器替换掉引号中空格)、
    (2)当客户编码不存在时,注意通过客户信息确认接口,输入五项基本信息来生成客户编码;
    (3)Oracle中修改表中数据一定要for update;
    (4)通过soapui进行多次承保操作,resultCode为1表示成功,resultCode为0时表示失败,成功承保10次,则达到上限。
    (5)ctrl+e:Oracle中ctrl+e可以找回操作过的sql语句;
    5、当pl/sql中出现锁表情况时,需要杀进程;
    最后方式是提交事务、回滚事务两个按钮要保持灰色状态,需要数据则提交,否则回滚;
    select * from v$lock_element
    select o.OBJECT_NAME,s.MACHINE,s.SERIAL# from v$locked_object l,dba_objects o,V$session s where l.OBJECT_ID=o.OBJECT_ID and l.SESSION_ID=s.SID
    alter system kill session '106,60193'
    select * from user_indexes t where t.index_NAME='UNQ_POLICY_ID_ISSUE_TIMES'

    select 'drop table' || t.table_name || ';' from user_all_tables t where t.table_name like '%16120502'

    172.20.11.15:1521/g22u1

  • 相关阅读:
    socket based————转帖
    罗马假日 java程序员
    java六大必须理解的问题来自网络少许有误 java程序员
    spring的scope="prototype" java程序员
    @GeneratedValue java程序员
    myeclipse乱码和tomcat相关的 java程序员
    关于***.hbm.xml的说明 java程序员
    hibernate中的Annotation补充 java程序员
    爱的随笔C语言版 java程序员
    Hibernate对jpa annotation的支持 java程序员
  • 原文地址:https://www.cnblogs.com/heng-yan/p/6186459.html
Copyright © 2020-2023  润新知