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的路径,会提高执行效率!
分享到:
相关推荐
expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,Oracle 的内存管理.ppt,Oracle9I计划管理表空间.pdf,Oracle备份与恢复.doc,Oracle返回树关系列表Sql.doc,Oracle里时间的应用.doc,Oracle体系结构概述....
很抱歉,我无法根据您提供的文件内容来生成与"Oracle初学者的学习点滴及国内oracl.docx"相关的IT知识。文件的内容主要涉及国际贸易教程的习题和理论,如李嘉图的比较优势理论、里昂惕夫悖论,以及21世纪国际贸易的新...
- AWR是Oracle提供的一个用于收集和存储系统性能信息的工具,可以帮助运维人员了解系统的运行状态和资源使用情况。 - AWR报告提供了关于数据库实例性能的重要信息,包括等待事件统计、SQL执行统计等,是进行性能...
《ORACLE PROC_*C编程点滴》这篇文档主要探讨了在Oracle数据库环境下使用PROC_*C进行编程的一些关键点,特别是在预编译时指定数据库用户和处理游标操作的细节。以下是这些知识点的详细说明: 1. **预编译时指定...
数据库(Oracle)运维工作内容及常用脚本命令 在 Oracle 数据库运维中,为了确保数据库的稳定运行,需要对系统资源的状况、IO 状况、磁盘空间、系统日志、数据库告警日志和数据库表空间进行监控和维护。本文将详细...
内容涵盖“dba 手记”,以手记形式记录了dba 们的工作点滴、经验分享;“sql 与sql 优化”,分别讲解了sql 的执行计划,sql profile 的使用,以及oracle 中的null 值解析;“内部原理与优化”,分别介绍了oracle 的...
"Oracle知识点滴1"可能包含了以上或其他更具体的Oracle使用技巧、问题解决方案、最佳实践等内容,对于Oracle用户来说,是一个宝贵的资源库。通过深入学习和实践,用户可以提升在Oracle数据库管理和开发方面的技能。
OPatch 12.2.0.1.36 for DB 19.0.0.0.0 (Jan 2023)
KUP-04095: Preprocessor command encountered error "pipe Read Timeout (Doc ID 2641386.1)
Proc ++ 编程经验总结是关于Proc编程的经验总结,涵盖了Linux系统下的Oracle数据库编程、环境设置、Pro*C编程、Oracle编程经验及维护点滴、PROC编程经验介绍、宿主变量的声明、宿主变量的作用范围、数据库的连接与...
标题“DB点滴”暗示了这篇内容可能涉及数据库方面的知识,特别是Oracle数据库的使用。描述中的博文链接虽然没有提供具体信息,但通常博客会分享作者在IT领域的独特见解或实践经验,尤其是与源码和工具相关的技术点。...
LoadRunner支持多种协议,如Web(HTTP/HTML)、Web Services(SOAP)、Oracle、FTP等,每种协议对应不同的脚本语言: 1. VRML(Virtual Reality Modeling Language):用于Web协议。 2. C:通用脚本语言,适用于多...
Oracle数据库中的多表关系,经典处理方式 经常点滴,大家分享
oracle数据库表空间常用查询以及相关操作命令,实际开发中遇到的点滴备忘录
- **经验分享**:文档通过日记的形式记录了作者作为Oracle DBA的日常工作点滴,包括各种技术挑战和个人情感体验。 - **技术进步见证**:从90年代初到现在,Oracle经历了巨大的变化和发展,作者的经历见证了这一过程...
【华为面试心得点滴总结】 华为作为全球知名的科技公司,其招聘流程严谨且具有挑战性,尤其是在面试环节。本文主要分享了一位应聘者在2022年华为面试过程中的经历和感悟,涵盖笔试、技术面试及综合面试三个阶段,...
LINUX的引导过程 Linux部分命令简介 Linux下即插即用设备的安装 RedHatLinux用户管理经验点滴 如何编译Linux的内核 对RedHat系统的一些概括性描述 Linux系统的简介及安装过程 深入Linux的LILO ...
13.linux使用经验点滴 14.Linux下文件操作编程和GAWK的介绍和应用 15.如何为Linux添加软件详解 16.LINUX的引导过程 17.删除Xteam Linux 硬盘分区的方法 18.关于Linux下编写和编译程序的几个问题 19.基于Linux...