`

深入探讨Oracle数据库存储过程的若干问题

阅读更多
1.在oracle中,数据表别名不能加as,如:

select a.appname from appinfo a;-- 正确

select a.appname from appinfo as a;-- 错误

也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧

2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了。

select af.keynode into kn from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 有into,正确编译

select af.keynode from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 没有into,编译报错,提示:Compilation

Error: PLS-00428: an INTO clause is expected in this Select statement

3.在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出"no data found"异常。

可以在该语法之前,先利用select count(*) from 查看数据库中是否存在该记录,如果存在,再利用select...into...

4.在存储过程中,别名不能和字段名称相同,否则虽然编译可以通过,但在运行阶段会报错

select keynode into kn from APPFOUNDATION where appid=aid and foundationid=fid;-- 正确运行

select af.keynode into kn from APPFOUNDATION af where af.appid=appid and af.foundationid=foundationid;-- 运行阶段报错,提示

orA-01422:exact fetch returns more than requested number of rows

5.在存储过程中,关于出现null的问题

假设有一个表A,定义如下:

create table A(

id varchar2(50) primary key not null,

vcount number(8) not null,

bid varchar2(50) not null -- 外键

);

如果在存储过程中,使用如下语句:

select sum(vcount) into fcount from A where bid='xxxxxx';如果A表中不存在bid="xxxxxx"的记录,则fcount=null(即使fcount定义时设置了默认值,如:fcount number(8):=0依然无效,fcount还是会变成null),这样以后使用fcount时就可能有问题,所以在这里最好先判断一下:

if fcount is null then

fcount:=0;

end if;这样就一切ok了。

6.Hibernate调用oracle存储过程

this.pnumberManager.getHibernateTemplate().execute(

new HibernateCallback() ...{

public Object doInHibernate(Session session)

throws HibernateException, SQLException ...{

CallableStatement cs = session

.connection()

.prepareCall("{call modifyapppnumber_remain(?)}");

cs.setString(1, foundationid);

cs.execute();

return null;

}

});



从:
http://www.sucai.com/Tech/List4/10801.htm
处,转载
分享到:
评论

相关推荐

    对Oracle数据库字符集若干问题的探讨.pdf

    黄健泉的文章《对Oracle数据库字符集若干问题的探讨》深入分析了Oracle数据库中广泛使用的中文字符集和Unicode字符集。Unicode是一种国际标准,旨在统一世界上所有的字符编码,包括各种语言的字母、数字和符号,确保...

    Oracle数据库数据恢复的若干方法研究.pdf

    Oracle数据库数据恢复的若干方法研究主要探讨了在面对不同场景下如何有效地恢复Oracle数据库中的数据。Oracle数据库是一种广泛应用于企业级的信息系统,对于数据的高可用性和安全性有着极高的要求。本文作者通过实例...

    oracle_存储过程详解

    本文将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中可能遇到的问题及其解决方法。 1. Oracle 存储过程基础知识: - 存储过程分为无参数、带参数和带有返回值的存储过程。 - 存储过程可以包含数据...

    Oracle PlSql存储过程

    下面我们将深入探讨Oracle PL/SQL存储过程的基础知识、基本语法以及一些常见问题。 **Oracle 存储过程基础知识** 1. **定义与创建**:存储过程由一系列的PL/SQL语句组成,包括变量声明、控制结构、SQL语句等,通过...

    ORACLE数据库概述

    本篇文章将深入探讨Oracle数据库的概述,包括它的特点、安装后的常用服务、用户创建、权限赋予以及数据类型。 首先,Oracle数据库以其强大的功能和稳定性著称。自8.15版本以来,Oracle不断迭代更新,如8.17i、9.2i...

    Oracle数据库的体系结构经典课件.pptx

    本章主要探讨了Oracle数据库的物理存储结构、逻辑存储结构、进程结构以及内存结构,并特别强调了数据字典的重要作用。 首先,Oracle的物理存储结构由一系列操作系统文件组成,主要包括数据文件、控制文件和重做日志...

    oracle存储过程学习经典[语法+实例+调用].docx

    下面我们将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中的一些常见问题和调用方式。 1. **Oracle存储过程基础知识** - 存储过程是一组为了完成特定功能的SQL和PL/SQL语句集合,它们被预先编译并...

    Oracle数据库第2讲1001.pptx

    在本次的Oracle数据库第二讲中,我们将深入探讨一些核心概念以及如何管理数据库中的表。 首先,了解数据库的基本概念至关重要。数据库服务器是运行在计算机上的软件,用于管理和控制数据。在Oracle中,一个数据库...

    基于Oracle数据库系统的性能优化与调整研究.pdf

    文章探讨了Oracle数据库系统性能优化与调整的若干关键技术和方法,内容涵盖SQL语句优化、内存分配调整和磁盘I/O优化等方面。 1. Oracle数据库查询优化 Oracle数据库查询优化是提升系统性能的重要途径,主要工作包括...

    Oracle 9i&10g编程艺术:深入数据库体系结构

    《Oracle 9i&10g编程艺术:深入数据库体系结构》是一本专注于解析Oracle数据库核心技术的专著,尤其对于数据库管理员(DBA)和Oracle开发者来说,这是一本不可多得的参考资料。这本书深入探讨了Oracle 9i和10g版本的...

    oracle存储超详细速成学习资料(语法+实例+调用)

    本篇将深入探讨Oracle存储过程的基础知识、语法、常见问题以及如何通过Java进行调用。 1. **Oracle 存储过程基础知识** - 存储过程可以提高数据库性能,因为它减少了网络通信,避免了每次调用都解析SQL语句的过程...

    oracle存储过程通用分页

    这篇博客“Oracle存储过程通用分页”将深入探讨如何利用Oracle存储过程来实现高效、灵活的分页功能。 首先,理解分页的基本概念至关重要。分页是将大型数据集分成若干小块,每次只加载一部分数据到内存中,这样可以...

    oracle存储过程学习经典[语法+实例+调用]

    本文将深入探讨Oracle存储过程的基础知识、基本语法以及调用方式,并通过实例来增强理解。 ### Oracle 存储过程基础知识 1. **创建存储过程**:创建存储过程使用`CREATE PROCEDURE`语句,其中包含一系列的SQL和PL/...

    Oracle文档Oracle文档

    本文将深入探讨Oracle的相关知识点,基于提供的压缩包文件中的标题、描述和标签,我们可以推断这些文件可能包含Oracle的培训资料,如PPT演示文稿,涵盖了多个主题。 1. **Oracle数据库基础** - 数据库概念:Oracle...

    oracle实务管理权威指南pdf

    《Oracle实务管理权威指南》是一本深度探讨Oracle数据库管理的专业书籍,主要针对Oracle数据库的日常运维、性能优化、故障排查等方面进行详细阐述。在Oracle数据库系统中,实务管理是确保数据库高效、稳定运行的关键...

Global site tag (gtag.js) - Google Analytics