ORACLE应用开发
- 格式:docx
- 大小:169.80 KB
- 文档页数:21
一、toad功能综述在oracle 应用程序的开发过程中,访问数据库对象和编写sql程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多sql脚本才能完成的。
quest software为此提供了高效的oracle应用开发工具-toad(tools of oracle application developers)。
在toad的新版本中,还加入了dba模块,可以帮助dba完成许多日常管理工作。
它最大的特点就是简单易用,访问速度快。
使用toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的sql和pl/sql代码编辑和测试工作。
toad由oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化pl/sql开发环境。
toad 主要具有如下特点:模式浏览:模式浏览功能可以让我们快速访问数据字典,浏览数据库中的表、索引、存储过程。
toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。
当我们点击一个单独的数据库对象,toad立即显示此对象的详细信息。
例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、sql语句以及和其他表的相互引用关系都在同一界面显示出来。
为了简化操作,用户可以在浏览窗口操作数据库对象。
sql 编辑器:sql 编辑器的主要功能是编辑、运行和调整sql语句。
toad 的高级编辑窗口包括众多的特性来提高开发人员编写sql语句的产品化程度。
例如,简单地生成代码模板,在编写sql前自动发现包的内容和列的名字等等。
sql 编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。
sql编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将sql语句的内容格式化等等。
这个窗口可以处理大到4gb 的内容,对大的开发项目来说非常有用。
便捷的书签可以让开发人员非常容易地找到相关位置。
随着 Microsoft 的 .NET 框架的逐渐流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最好的方式的信息—不仅在基本的连通性方面,还包括与使用 Visual () 进行有效的应用程序开发的关系。
在本文中,我将说明构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程,包括:∙如何添加工程引用,以在您的 .NET 工程中支持 Oracle 类∙如何创建 Oracle 数据库连接字符串∙如何使用 Connection、Command 和 DataReader 对象。
您将有机会应用您在三个上机操作实践中学到的内容,难度范围从比较轻易到更复杂。
.NET Data Provider 除了基本的 Oracle 客户端连通性软件,.NET 应用程序还需要使用称为 managed data provider(其中 "managed" 指的是代码由 .NET 框架治理)的工具。
数据供给程序是 .NET 应用程序代码和 Oracle 客户端连通性软件之间的层。
在几乎所有情况下,最优的性能都是通过使用为特定数据库平台优化了的供给程序而不是一般的 .NET OLE DB 数据供给程序实现的。
Oracle、Microsoft 和第三方供给商都提供了针对 Oracle 产品进行了优化的数据供给程序。
Oracle 和 Microsoft 免费提供其 Oracle 数据供给程序。
(Microsoft 为 .NET 框架的 1.1 版提供的供给程序包含在该框架中,不需要单独下载或安装。
)一些第三方数据供给程序支持 Oracle 的较早的版本,或者不需要安装 Oracle 客户端软件。
在本文中,我们假设使用 Oracle Data Provider for .NET (),并单独提供下载。
当安装了 和所有要求的 Oracle 客户端连通性软件时,就可以开始使用 Visual 进行应用程序开发了。
概述1. 介绍数据库的基本概念数据库是一个有组织的数据集合,用于存储和管理数据。
在计算机科学和信息技术领域,数据库是非常重要的概念。
现代社会大量的信息需要进行存储和管理,数据库的出现极大地方便了信息的管理和利用。
2. 数据库系统的分类数据库系统可以分为关系型数据库和非关系型数据库两大类。
常见的关系型数据库系统有Oracle、MySQL、SQL Server等;非关系型数据库系统有MongoDB、Redis、Cassandra等。
在实际应用中,选择合适的数据库系统对于系统的稳定性和性能有着至关重要的影响。
3. Oracle数据库的基本概念Oracle数据库是一种关系型数据库管理系统,是目前全球最大的企业级数据库系统供应商。
它提供了完整的数据库解决方案,包括存储、检索、分析和保护数据。
Oracle数据库在企业管理信息系统的数据存储和处理方面占有重要地位,被广泛应用于各种行业的企业系统中。
基本特点1. 数据安全性Oracle数据库通过访问控制、用户认证、数据加密等手段保障数据的安全性。
它提供了完善的权限管理机制,可以对数据库中的各种对象进行细粒度的权限控制。
2. 数据完整性Oracle数据库具有强大的数据完整性保障措施,通过约束、触发器等技术保证数据的准确性和一致性。
3. 数据性能Oracle数据库在数据处理能力和性能优化方面有着丰富的经验和技术积累。
它支持并发控制、索引优化、缓存机制等技术,保证数据库系统的高效运行。
基本结构1. 实例和数据库Oracle数据库由实例和数据库两部分组成。
实例是Oracle数据库运行的环境,包括内存结构、进程等;数据库是数据的物理存储。
2. 数据字典Oracle数据库中包含了大量的元数据,用于描述数据库中的各种对象信息。
这些元数据保存在数据字典中,提供了用户和应用程序对数据库的数据定义和数据操作等方面的支持。
3. 表空间表空间是Oracle数据库中用于存储用户数据的逻辑结构。
oracle 证书分类
Oracle证书主要分为三类:OCA证书、OCP证书和OCM证书。
OCA认证是Oracle认证的初级阶段,现已与OCP认证合并,不再单独进行报考,持有者证明其具有基本的Oracle数据库管理技能。
OCP认证是Oracle认证的中级阶段,持有者通常被视为业界薪水最高的IT 专业人才之一。
想要获得OCP认证,需要完成一系列考试,包括Oracle专业DBA认证、Oracle网络应用开发人员认证、Oracle Java开发人员认证和Oracle 数据库开发认证等。
OCM认证是Oracle认证的高级阶段,持有者证明其在Oracle数据库管理方面具有很高的技能水平。
以上信息仅供参考,建议访问Oracle官网获取更全面准确的信息。
最近,我所工作的机构(威斯康星大学伊奥克莱尔分校)将一个用 Cobol 编写且运行在 Unisys 大型机上的老旧系统的一部分移植到了Java/J2EE 环境中。
我们的 IT 小组主要使用开放源代码工具(包括 Eclipse、Tomcat 和Spring)来编写应用程序。
但是,许可方式上的更改使我们可以考虑Oracle工具,因此我们使用Oracle JDeveloper 10g 和 Oracle 应用程序开发框架 (ADF) 编写了一个应用程序来测试开发模型。
本文将对该应用程序进行描述,从而快速而详细地介绍如何使用 Oracle ADF 进行 UI 开发。
(有关更进一步的技术信息,请参阅 Oracle 技术网上的 Oracle ADF 教程和 Oracle ADF 开发人员指南、Oracle ACE Steve Muench 在 Oracle 杂志上内容精彩的 ADF 专栏以及 Oracle JDeveloper 论坛中的评论。
)在本文中,我不会描述构建应用程序所需的每一个步骤,但希望这里的信息足以使您作出自己的决策。
本文假设您十分了解Java,熟悉 Eclipse 或JDeveloper,并具有普通编程知识。
(我没有在每个步骤后提醒您Save All,但该步骤不应省略。
)改变给定体系结构和开发模型总是很困难,因此我将首先提供一些背景知识,以说明 JDeveloper 和 ADF 的价值所在,从而证明这种转变的有利性。
我还会在一个单独的部分中提供一些“提示与技巧”。
背景当前应用程序直接使用了 Java (JDK 1.5)、Spring(MVC、Web Flow、JDBC 模板)和 JSP 页面。
数据也复制到了一个 Oracle 数据库 10g第 2 版数据库中。
尽管我们了解如何使用 JBoss Hibernate 作为对象关系映射 (ORM) 工具,但我们的数据访问既不复杂也不是动态的,而且 Spring JDBC 模板已经充分满足了我们的需要。
走进Oracle (2)1.Oracle简介 (4)2.Oracle安装 (5)3.Oracle客户端工具 (10)4.Oracle服务 (17)5.Oracle启动和关闭 (18)6.Oracle用户和权限 (19)7.本章总结 (22)8.本章练习 (23)SQL数据操作和查询 (26)1.SQL简介 (27)2.Oracle数据类型 (27)3.创建表和约束 (28)4.数据操纵语言(DML) (31)5.操作符 (36)6.高级查询 (37)7.本章总结 (45)8.本章练习 (46)子查询和常用函数 (49)1.子查询 (50)2.Oracle中的伪列 (52)3.Oracle函数 (55)4.本章总结 (64)5.本章练习 (65)表空间、数据库对象 (68)1.Oracle数据库对象 (69)2.同义词 (69)3.序列 (72)4.视图 (74)5.索引 (76)6.表空间 (78)7.本章总结 (82)8.本章练习 (83)PL/SQL程序设计 (86)1.PL/SQL简介 (87)2.PL/SQL块 (88)3.PL/SQL数据类型 (92)4.PL/SQL条件控制和循环控制 (94)5.PL/SQL中动态执行SQL语句 (104)6.PL/SQL的异常处理 (106)7.本章总结 (112)8.本章练习 (113)Oracle应用于.Net平台 (115)1.回顾 (116)2.使用连接Oracle (117)3.抽象工厂中加入Oracle (121)4.本章总结 (126)5.本章练习 (127)数据库导入导出 (129)1.Oracle导入导出 (130)2.EXP导出数据 (130)3.IMP导入 (133)4.常见问题 (134)第1章走进Oracle主要内容Oracle安装✓Oracle创建用户和角色✓客户端链接Oracle服务器1.Oracle简介在第一学期我们已经接触过关系型数据库SQL Server,对数据库、表、记录、表的增删改查操作等这些基本的概念已经了解。
Oracle ERP最佳实践E-BUSINESS SUITEORACLE核心应用技术OAF开发参考Author: 赵振坤Creation Date: April 26, 2013Last Updated: April 25, 2022Document Ref: <Document Reference Number>Version: 1.0Approvals:<Approver 1><Approver 2>Copy Number _____Document ControlChange RecordReviewersDistributionNote To Holders:If you receive an electronic copy of this document and print it out, please write yourname on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the frontcover, for document control purposes.ContentsDocument Control .................................................................................................................. i i 1.深入浅出OAF –入门篇 (4)1.1.OAF简介 (4)1.2.环境搭建 (7)1.3.HelloWorld (10)1.4.一个简单的查询 (19)1.5.应用发布 (28)1.6.编码规范 (30)2.深入浅出OAF -基础篇 (32)2.1.实现增删改 (32)2.2.数据校验 (54)2.3.常用布局 (57)2.4.常用组件 (69)2.5.常用JAVA代码 (81)2.6.使用CSS和JS (83)3.深入浅出OAF -中级篇 (84)3.1.纯代码添加组件 (84)3.2.PPR的使用 (84)3.3.OAF和Form相互调用 (87)3.4.OAF个性化 (89)4.深入浅出OAF –高级篇 (95)4.1.探究MVC (95)4.2.实体对象 (99)4.3.视图对象 (104)4.4.BC4J对象缓存 (108)4.5.解析OAF页面元数据结构 (111)5.Reference (116)6.Open and Closed Issues for this Deliverable (117)Open Issues (117)Closed Issues (117)1.深入浅出OAF –入门篇1.1.OAF简介1.1.1.概述1)Oracle Application Framework(OA Framework)是Oracle提供的基于HTML应用的开发和发布平台2)OA Framework由一系列的中间层服务和Oracle JDeveloper的扩展(OracleApplications Extension, OA Extension)组成3)OAF使用Oracle Business Components for JAVA(BC4J)框架作为其模型部分,来实现业务逻辑和数据操作。
Quest应用开发解决方案Oracle数据库维护和管理解决方案Quest Central for Oracle全面Oracle数据库管理解决方案一个好人整理目录Quest应用开发解决方案 (3)SQL Navigator (5)SQLab Xpert (6)SQL Impact (7)DataFactory (8)Schema Manager (8)Data Manager (9)Benchmark Factory (9)Quest数据库维护和管理解决方案 (10)Spotlight on Oracle (11)Space Manager (12)LiveReorg® (13)SQLab Vision (13)Storage Xpert (14)I/Watch (15)Toad (16)Quest Central for Oracle (17)......全面Oracle数据库管理解决方案.. (17)Quest应用开发解决方案建立在Oracle数据库基础上的关键业务系统,是当今企业的核心应用;如何提高应用程序的开发速度,保证应用系统的质量,是每个应用的设计人员和开发人员都非常关心的问题。
一般来说,面向Oracle数据库的应用开发由以下几个方面构成。
Quest Software(http: )是国际领先的应用性能管理解决方案供应商,致力于为企业提供应用开发、性能优化和可用性管理方面的解决方案。
Quest Software提供完整的面向Oracle数据库的开发环境,其应用程序开发产品覆盖整个Oracle应用开周期,包括:QDesigner™是一种数据库分析设计和应用开发工具,在同一产品中集成了面向对象、概念和物理数据对象建模等功能,直观用户接口、30多种数据库支持和独特的解决方案可以加速软件的设计和分析过程,帮助设计者和开发人员迅速提交复杂的分布式应用。
Qdesigner的主要功能特性如下:□利用QDesigner 中的建模,自动创建物理数据库□反向工程允许用户理解现有数据库设计□方便更新现有数据库,实现自动化变化更新□可选的MetaWorks™企业级repository 允许用户(开发者、分析人员、设计者)按照同一模式协调工作□可建立面向对象的模式,以标准的UML类定义应用结构和业务逻辑,以及顺序图表QDesigner 使业务分析和应用设计人员能够与开发者和DBA有效地合作,并自动生成模式结构或应用组件图。
ORACLE应用开发过程中常见问题 1、数据库日常运维监控 1.1 检查表空间文件使用率 一、执行如下SQL语句进行查询: selectb.file_name, b.tablespace_name, b.bytes / 1024 / 1024总空间大小, (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024已使用空间, substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率 fromdba_free_space a, dba_data_files b wherea.file_id = b.file_id groupbyb.tablespace_name, b.file_name, b.bytes orderbyb.tablespace_name;
二、分析与注意事项: 1)数据库用户建议同时创建多个表空间,数据表空间和索引表空间尽量单独建立,增加IO的并行响应效率; 2)用户的表空间应该由多个表空间文件组成,建议每个表空间文件大小为10G; 3)用户的表空间利用率超出80%以上,为避免表空间不足引起异常,应该提前申请增加表空间文件; 三、表空间不足解决方法: 1)修改表空间数据文件大小: ALTERDATABASEDATAFILE'/opt/oracle/oradata/TEST/test.dbf'RESIZE20000M;
2)为表空间增加数据文件: alter tablespace sales add datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 20000M autoextend on next 1000M maxsize30000M;
3)清理表空间垃圾: purgerecyclebin; 4)磁盘碎片压缩释放表空间:
对表进行磁盘压缩,当对表内部数据进行了大量的UPDATE、DELETE操作后,一定时间需要进行磁盘压缩,否则在查询时,若通过FULL SCAN扫描数据,将会把空块也会扫描到,对表进行磁盘压缩需要进行行迁移操作,所以首先需要操作: ALTER TABLE A ENABLE ROW MOVEMENT; 对表的压缩语法为: ALTER TABLE A SHRINK SPACE;
对于索引也需要进行压缩,索引也是表:
ALTER INDEX shrink space; 1.2检查临时表空间 在oracle数据库中,临时表空间主要用于用户在使用order by 、group by语句进行排序和汇总时所需的临时工作空间。 要查询数据库中临时表空间的名称,大小及数据文件,命令如下: select tablespace_name,current_users,total_extents,used_extents,free_extents fromv$sort_segment;
分析: 临时表空间经常处于饱和状态,除了需要适当调整临时表空间的初始化大小,另一个工作就是查找最消耗临时表空间的SQL语句进行分析优化,这个才是治标治本的关键。
1.3检查单张表的使用情况 一、查询所有用户表使用大小的前三十名 select * from (select segment_name, bytes / 1024 / 1024 || 'M' DATASPACE from (select segment_name, SUM(bytes) bytes fromdba_segments where owner = USER GROUP BY segment_name) order by bytes desc) whererownum<= 30; 二、分析: ORACLE官方建议单表数据超过2G的数据表,应该进行分区,分区的目的是使得每个分区的数据量保持一定大小,分区之间数据量分布比较均匀,必须结合业务应用特征,将每次用户使用的数据限制在同一个分区内,尽量避免跨分区查询。
1.4 oracle锁表问题 一、检查锁表对象,可直接执行: Select a.inst_id, c.sid, c.serial#, d.name, b.object_name, c.username, a.object_id, c.program, c.status, c.osuser, c.terminal fromgv$Locked_object a, All_objects b, gv$session c, audit_actions d wherea.object_id = b.object_id anda.inst_id = c.inst_id(+) anda.session_id = c.sid(+) andc.command = d.action;
二、对于长期锁住不释放的表进行手动解锁: 1)以系统管理员登陆 sqlplusname/passwd@dbnameassysdba 2)查看锁的SID和SERIAL#,把锁给KILL掉 --alter system kill session 'sid,serial#'; altersystemkillsession'146,21177'; 3)如果是账号被锁,需要给账户解锁 alteruserermsdataaccountunlock; 4)处理Oracle中杀不掉的锁 一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。
1.5 检查消耗数据库性能的SQL语句 一、检查cpu_time占用top 10的sql
selectcpu_time, sql_text from (select sql_text, cpu_time, rank() over(order by cpu_timedesc) exec_rank fromv$sql m) whereexec_rank<= 10; 二、执行次数最多的top 10的SQL语句 selectsql_text, executions from (select sql_text, executions, rank() over(order by executions desc) exec_rank fromv$sql) whereexec_rank<= 10;
1.6 检查数据库连接数 1)当前的数据库连接数 selectcount(*) fromv$process 2)数据库允许的最大连接数 selectvaluefromv$parameterwherename ='processes' 3)修改最大连接数: altersystemset processes = 300scope = spfile; 4)修改完需重启数据库生效 shutdownimmediate; startup; 5)查看当前有哪些用户正在执行哪些语句 SELECT osuser, a.username,cpu_time/executions/1000000||'s',b.sql_text,machine fromv$session a, v$sqlarea b wherea.sql_address =b.address order by cpu_time/executions desc;
6)当前的session连接数 selectcount(*) fromv$session; --集群环境,查看每个单点服务器分别占用了多少进程 select INST_ID, count(1) fromgv$session t groupbyt.INST_ID; 7)当前的并发连接数 selectcount(*) fromv$sessionwhere status='ACTIVE';
8)最大连接 show parameter processes 9)修改最大连接数 altersystemset processes = valuescope =spfile;
2、大数据表分区索引创建 2.1 查找有建分区的表 select * fromuser_part_tables; 1)ORACLE建议,单表数据大小超过2G或者数据量按时间持续增长的历史表,应该考虑进行分区操作; 2)分区字段不能用来创建索引; 3)创建分区索引,对于只会在同一个分区内使用的字段,尽量使用LOCAL本地索引; 4)通过主键进行查询时,无需加分区字段进行条件限制,主键本身已经是最快; 5)分区尽量有相对独立的表空间,提升IO响应并发度; 7)分区的字段一定要是经常用以提取数据的字段,否则会在提取过程中导致遍历多个分区,这样比没有分区还要慢。 8)分区字段要选择合适,数据较为均匀分布到各个分区,不要太多也不要太少,而且根据分区字段可以很快定位到分区范围。 9)一般情况下,尽量然业务操作在同一个分区内部完成。