`
CoderDream
  • 浏览: 478474 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Oracle使用经验点滴

阅读更多

1、由setLong()产生的空指针异常:

ref = jdbcTemplate.update(sql, new PreparedStatementSetter() {

	@Override
	public void setValues(PreparedStatement ps)
			throws SQLException {
       ....
       ps.setLong(18, crefFlag);

 如果这里的crefFlag为null,数据库定义的类型为INTEGER或NUMBER,则会抛出空指针异常,解决方法,先进行非空判断,如果为空则置0:

if (crefFlag == null) {
	ps.setLong(18, 0);
} else {
	ps.setLong(18, crefFlag);
}

 

2、在进行多表联查(包括自联接)时使用特殊处理方式

修改前:

SELECT T0.CORG_ID       CENT_ID,
 T0.CORG_NAME     ENT_NAME,
 T1.CORG_ID       CORG_ID,
 T1.CORG_NAME     ORG_NAME,
 T2.CUSER_ID      CUSER_ID,
 T2.CNAME         CNAME,
 T2.CTELEPHONE_NO CTELEPHONE_NO,
 T2.CFAX          CFAX,
 T2.CCREATOR_ID   CCREATOR_ID,
 T2.CEMAIL        CEMAIL,
 T2.CUSER_STATUS  CUSER_STATUS
  FROM T_ENTERPRISE T0, T_ENTERPRISE T1, T_USER T2, T_ENT_ORG_USER T3
 WHERE T2.CENT_ID != 'XL_01'
   AND T0.CORG_ID IN
       (SELECT CENT_ID FROM T_USER WHERE UPPER(CNAME) LIKE UPPER('%co%'))
   AND T2.CUSER_ID IN
       (SELECT CUSER_ID FROM T_USER WHERE UPPER(CNAME) LIKE UPPER('%co%'))
   AND T0.CORG_ID = T1.CENTERPRISE_ID
   AND T1.CORG_ID = T3.CORG_ID
   AND T2.CUSER_ID = T3.CUSER_ID
 ORDER BY T2.CNAME, T1.CORG_ID;

修改后:

SELECT /*+FIRST_ROWS*/
 T0.CORG_ID       CENT_ID,
 T0.CORG_NAME     ENT_NAME,
 T1.CORG_ID       CORG_ID,
 T1.CORG_NAME     ORG_NAME,
 T2.CUSER_ID      CUSER_ID,
 T2.CNAME         CNAME,
 T2.CTELEPHONE_NO CTELEPHONE_NO,
 T2.CFAX          CFAX,
 T2.CCREATOR_ID   CCREATOR_ID,
 T2.CEMAIL        CEMAIL,
 T2.CUSER_STATUS  CUSER_STATUS
  FROM T_ENTERPRISE T0, T_ENTERPRISE T1, T_USER T2, T_ENT_ORG_USER T3
 WHERE T2.CENT_ID != 'XL_01'
   AND T0.CORG_ID IN
       (SELECT CENT_ID FROM T_USER WHERE UPPER(CNAME) LIKE UPPER('%co%'))
   AND T2.CUSER_ID IN
       (SELECT CUSER_ID FROM T_USER WHERE UPPER(CNAME) LIKE UPPER('%co%'))
   AND T0.CORG_ID = T1.CENTERPRISE_ID
   AND T1.CORG_ID = T3.CORG_ID
   AND T2.CUSER_ID = T3.CUSER_ID
 ORDER BY T2.CNAME, T1.CORG_ID;
   

修改后,Oracle会调整执行SQL的路径,会提高执行效率!

 

分享到:
评论

相关推荐

    Oracle点滴积累

    expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,Oracle 的内存管理.ppt,Oracle9I计划管理表空间.pdf,Oracle备份与恢复.doc,Oracle返回树关系列表Sql.doc,Oracle里时间的应用.doc,Oracle体系结构概述....

    下载此文件-Oracle初学者的学习点滴及国内oracl.docx

    很抱歉,我无法根据您提供的文件内容来生成与"Oracle初学者的学习点滴及国内oracl.docx"相关的IT知识。文件的内容主要涉及国际贸易教程的习题和理论,如李嘉图的比较优势理论、里昂惕夫悖论,以及21世纪国际贸易的新...

    Oracle运维最佳实践-下.pdf 带书签

    - AWR是Oracle提供的一个用于收集和存储系统性能信息的工具,可以帮助运维人员了解系统的运行状态和资源使用情况。 - AWR报告提供了关于数据库实例性能的重要信息,包括等待事件统计、SQL执行统计等,是进行性能...

    ORACLE PROC_*C编程点滴.pdf

    《ORACLE PROC_*C编程点滴》这篇文档主要探讨了在Oracle数据库环境下使用PROC_*C进行编程的一些关键点,特别是在预编译时指定数据库用户和处理游标操作的细节。以下是这些知识点的详细说明: 1. **预编译时指定...

    数据库(Oracle)运维工作内容及常用脚本命令 数据库运维.pdf

    数据库(Oracle)运维工作内容及常用脚本命令 在 Oracle 数据库运维中,为了确保数据库的稳定运行,需要对系统资源的状况、IO 状况、磁盘空间、系统日志、数据库告警日志和数据库表空间进行监控和维护。本文将详细...

    Oracle DBA手记3-数据库性能优化与内部原理解析 中文版

    内容涵盖“dba 手记”,以手记形式记录了dba 们的工作点滴、经验分享;“sql 与sql 优化”,分别讲解了sql 的执行计划,sql profile 的使用,以及oracle 中的null 值解析;“内部原理与优化”,分别介绍了oracle 的...

    oracle知识點滴

    "Oracle知识点滴1"可能包含了以上或其他更具体的Oracle使用技巧、问题解决方案、最佳实践等内容,对于Oracle用户来说,是一个宝贵的资源库。通过深入学习和实践,用户可以提升在Oracle数据库管理和开发方面的技能。

    【Oracle点滴积累】Oracle 19c安装Critical Patch Update for January 2023

    OPatch 12.2.0.1.36 for DB 19.0.0.0.0 (Jan 2023)

    【Oracle点滴积累】解决ORA-29913和KUP-04095: preprocessor command的方法

    KUP-04095: Preprocessor command encountered error "pipe Read Timeout (Doc ID 2641386.1)

    proc ++ 编程经验总结

    Proc ++ 编程经验总结是关于Proc编程的经验总结,涵盖了Linux系统下的Oracle数据库编程、环境设置、Pro*C编程、Oracle编程经验及维护点滴、PROC编程经验介绍、宿主变量的声明、宿主变量的作用范围、数据库的连接与...

    DB点滴

    标题“DB点滴”暗示了这篇内容可能涉及数据库方面的知识,特别是Oracle数据库的使用。描述中的博文链接虽然没有提供具体信息,但通常博客会分享作者在IT领域的独特见解或实践经验,尤其是与源码和工具相关的技术点。...

    LoadRunner使用技巧及相关知识点滴

    LoadRunner支持多种协议,如Web(HTTP/HTML)、Web Services(SOAP)、Oracle、FTP等,每种协议对应不同的脚本语言: 1. VRML(Virtual Reality Modeling Language):用于Web协议。 2. C:通用脚本语言,适用于多...

    Oracle9i中的精典

    Oracle数据库中的多表关系,经典处理方式 经常点滴,大家分享

    oracle数据库表空间常用查询以及相关操作命令

    oracle数据库表空间常用查询以及相关操作命令,实际开发中遇到的点滴备忘录

    DBA日记---白鳝先生的沥血之作

    - **经验分享**:文档通过日记的形式记录了作者作为Oracle DBA的日常工作点滴,包括各种技术挑战和个人情感体验。 - **技术进步见证**:从90年代初到现在,Oracle经历了巨大的变化和发展,作者的经历见证了这一过程...

    最新_互联网公司招聘_笔试_开发_2022华为面试心得点滴总结大全.pdf

    【华为面试心得点滴总结】 华为作为全球知名的科技公司,其招聘流程严谨且具有挑战性,尤其是在面试环节。本文主要分享了一位应聘者在2022年华为面试过程中的经历和感悟,涵盖笔试、技术面试及综合面试三个阶段,...

    Linux使用技巧集

    LINUX的引导过程 Linux部分命令简介 Linux下即插即用设备的安装 RedHatLinux用户管理经验点滴 如何编译Linux的内核 对RedHat系统的一些概括性描述 Linux系统的简介及安装过程 深入Linux的LILO ...

    Linux中文手册

    13.linux使用经验点滴 14.Linux下文件操作编程和GAWK的介绍和应用 15.如何为Linux添加软件详解 16.LINUX的引导过程 17.删除Xteam Linux 硬盘分区的方法 18.关于Linux下编写和编译程序的几个问题 19.基于Linux...

Global site tag (gtag.js) - Google Analytics