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数据库字符集若干问题的探讨》深入分析了Oracle数据库中广泛使用的中文字符集和Unicode字符集。Unicode是一种国际标准,旨在统一世界上所有的字符编码,包括各种语言的字母、数字和符号,确保...
Oracle数据库数据恢复的若干方法研究主要探讨了在面对不同场景下如何有效地恢复Oracle数据库中的数据。Oracle数据库是一种广泛应用于企业级的信息系统,对于数据的高可用性和安全性有着极高的要求。本文作者通过实例...
本文将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中可能遇到的问题及其解决方法。 1. Oracle 存储过程基础知识: - 存储过程分为无参数、带参数和带有返回值的存储过程。 - 存储过程可以包含数据...
下面我们将深入探讨Oracle PL/SQL存储过程的基础知识、基本语法以及一些常见问题。 **Oracle 存储过程基础知识** 1. **定义与创建**:存储过程由一系列的PL/SQL语句组成,包括变量声明、控制结构、SQL语句等,通过...
本篇文章将深入探讨Oracle数据库的概述,包括它的特点、安装后的常用服务、用户创建、权限赋予以及数据类型。 首先,Oracle数据库以其强大的功能和稳定性著称。自8.15版本以来,Oracle不断迭代更新,如8.17i、9.2i...
本章主要探讨了Oracle数据库的物理存储结构、逻辑存储结构、进程结构以及内存结构,并特别强调了数据字典的重要作用。 首先,Oracle的物理存储结构由一系列操作系统文件组成,主要包括数据文件、控制文件和重做日志...
下面我们将深入探讨Oracle存储过程的基础知识、基本语法以及在实际应用中的一些常见问题和调用方式。 1. **Oracle存储过程基础知识** - 存储过程是一组为了完成特定功能的SQL和PL/SQL语句集合,它们被预先编译并...
在本次的Oracle数据库第二讲中,我们将深入探讨一些核心概念以及如何管理数据库中的表。 首先,了解数据库的基本概念至关重要。数据库服务器是运行在计算机上的软件,用于管理和控制数据。在Oracle中,一个数据库...
文章探讨了Oracle数据库系统性能优化与调整的若干关键技术和方法,内容涵盖SQL语句优化、内存分配调整和磁盘I/O优化等方面。 1. Oracle数据库查询优化 Oracle数据库查询优化是提升系统性能的重要途径,主要工作包括...
《Oracle 9i&10g编程艺术:深入数据库体系结构》是一本专注于解析Oracle数据库核心技术的专著,尤其对于数据库管理员(DBA)和Oracle开发者来说,这是一本不可多得的参考资料。这本书深入探讨了Oracle 9i和10g版本的...
本篇将深入探讨Oracle存储过程的基础知识、语法、常见问题以及如何通过Java进行调用。 1. **Oracle 存储过程基础知识** - 存储过程可以提高数据库性能,因为它减少了网络通信,避免了每次调用都解析SQL语句的过程...
### Oracle中文官方文档知识点解析 ...综上所述,Oracle中文官方文档不仅详尽地介绍了Oracle数据库的基础知识和技术细节,还深入探讨了高级特性和应用程序开发技巧,对于初学者和专业人士来说都是非常宝贵的资源。
这篇博客“Oracle存储过程通用分页”将深入探讨如何利用Oracle存储过程来实现高效、灵活的分页功能。 首先,理解分页的基本概念至关重要。分页是将大型数据集分成若干小块,每次只加载一部分数据到内存中,这样可以...
本文将深入探讨Oracle存储过程的基础知识、基本语法以及调用方式,并通过实例来增强理解。 ### Oracle 存储过程基础知识 1. **创建存储过程**:创建存储过程使用`CREATE PROCEDURE`语句,其中包含一系列的SQL和PL/...
本文将深入探讨使用PowerDesigner进行Oracle库表设计优化的若干关键方法,旨在帮助数据库设计师和开发者提升数据库性能,构建高效的数据管理解决方案。 #### 数据库设计的重要性与常见问题 大多数Oracle数据库性能...
《Oracle实务管理权威指南》是一本深度探讨Oracle数据库管理的专业书籍,主要针对Oracle数据库的日常运维、性能优化、故障排查等方面进行详细阐述。在Oracle数据库系统中,实务管理是确保数据库高效、稳定运行的关键...
在深入探讨如何优化Oracle数据库表设计之前,我们首先需要理解数据库性能问题的根源所在。大多数情况下,性能问题并非源于内存、I/O、CPU等硬件性能的配置问题,而是由于数据库设计的不充分。一个合理的数据库设计应...
本文将深入探讨Oracle的相关知识点,基于提供的压缩包文件中的标题、描述和标签,我们可以推断这些文件可能包含Oracle的培训资料,如PPT演示文稿,涵盖了多个主题。 1. **Oracle数据库基础** - 数据库概念:Oracle...