第一篇:oracle学习心得
一、定位
oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。
二、学习方法
我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。
学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。
学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了
很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性,没有钻研的学习态度,不管学什么东西,都不会成功的。
三、oracle的体系
oracle的体系很庞大,要学习它,首先要了解oracle的框架。在这里,简要的讲一下oracle的架构,让初学者对oracle有一个整体的认识。
1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)
控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件
数据文件:存储数据的文件
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件
参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数
归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
密码文件:认证哪些用户有权限启动和关闭Oracle例程
2、逻辑结构(表空间、段、区、块)表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。段:是对象在数据库中占用的空间
区:是为数据一次性预留的一个较大的存储空间
块:ORACLE最基本的存储单位,在建立数据库的时候指定
3、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收
4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。
5、oracle例程:Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。
6、SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
四、深入学习
管理:可以考OCP证书,对oracle先有一个系统的学习,然后看Oracle Concepts、oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。
资料引用:
第二篇:oracle学习心得
Oracle学习心得
转眼之间学习oracle差不多已经半年了,从开始的不了解,到现在熟悉oracle的基本使用和操作。Oracle的体系太庞大了,对于初学者来说,难免有些无从下手的感觉,好多地方不知道从何开始,有哪些注意事项,结果都是不能学好这门技术。,但是经过老师的带领总体上也打开了学习的大门,可以自己去学习,少走了很多的弯路。
学习一门技术首先从态度开始,如果你想学好这门技术,你首先要端正态度,要发自 内心的去想学好这门技术,不要以开始就懈怠,要从严要求自己,一心一意的投入到学习当中,不要害怕学习中会遇到的困难。即使学习中遇到了困难和问题也不要害怕,不要放弃,要学会自己去解决问题,这样才能从学习中收获经验教训,是自己的水平提高。如果放弃了,你就会害怕遇到困难,不去积极的努力,又何尝去提高自己呢!
解决问题的途径和发法有很多种。作为一个新一代的大学生,首先要学会自己解决问题,我们可以去图书馆去查阅资料,寻找在学习中遇到的困难,找到解决方法,另外,我们还可以去网上搜集资料,现在网络技术十分发达,很多问题我们都可以在网上找到答案的,而且网上还有很多有学问的人,他们专业技术十分优秀,我们可以请教他们,往往会有意想不到的结果的。现在我们在学校里阀门有着优越的学习环境,有着优秀的教师资源,上课时我们遇到学习中的困难,我们可以去请教老师。老师有着扎实的基本功底,他们总是非常热情的该给我们去讲解我们遇到的困难,帮助我们去学习、去提高。老师在课堂上会认真的讲解我们在学习中要注意的事项,以及这门技术的只是点,帮助我们系统的学习oracle这门技术。我们不能总是听讲,而是要去实践。以前总是说实践才是检验真理的唯一标准。我们要自己动手去做,课上讲,当堂练习,课下复习,这些都是学好一门技术的根本。
就像学习Java一样,以前没有认真听老师的讲解,现在自学起来,总是感觉有些吃力,好多不懂的地方也没有人可以请教的。所以在开始学习这没技术时,我就暗下决心要认真听讲,挺好老师讲的每一个知识点,虽然这门学科知识选修的,但是还要努力学的,因为Oracle这门技术在很多方面都有很多重要应用,尤其是在以后的工作中。Oracle数据库是一门非常重要的实践课程,所以听完课后,一定要多抽出时间来去联系,只有在不断的实践过程中,才能够深刻的了解它的原理和方法。所以学好Oracle,不断的抽时间练习吧!因为,有工作经验的DBA和没有工作经验的学院主要区别就在于两者的熟练度不一样,只要你的熟练度足够,你也可以与工作几年工作经验的人一脚高下!
说了一大堆主要说的有以下几点:
1.在上课时老师讲的一些经验教训要细心的领会 2.课后练习也要深入,保持着一种深入研究的心态 3.做事情要认真,不要把问题相当然
4.遇到问题要学会用多种方法解决,上网查,去各种有关的社区论坛去与大家交流学习
5.培养自己的团队合作精神处理好与大家的关系,因为oracle经常需要一个团队来开发一个项目的
6.最重要的的一点就是刻苦用功是学习不变的法宝
第三篇:ORACLE学习心得
Oracle RAC 学习心得
1.概念
RAC,全称real application clusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
在Oracle9i之前,RAC的名称是OPS(Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。
2.优缺点
优点:
Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡;
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。缺点:(1)相对单机,管理更复杂,要求更高;
(2)在系统规划设计较差时性能甚至不如单节点;(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。
3.Rac 特点
每一个节点的linstance都有自己的SGA
每一个节点的linstance都有自己的background process 每一个节点的linstance都有自己的redo logs 每一个节点的linstance都有自己的undo表空间
所有节点都共享一份datafiles和controlfiles 4.Rac 组件
逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cachel
5.UNDO和REDO读书笔记
1)redo是什么?oracle的redo是如何工作的
redo是重做日志文件,是oracle数据库的日志文件.oracle的重做日志有两种:在线重做日志以及归档重做日志。
在线重做日志:主要用于由于数据库主机掉电等原因导致实例失败,此时oracle采用在线重做日志在数据库启动时将数据库恢复到断电之前的时间点上。
归档重做日志:主要用于介质失败,比如:磁盘受损。此时需要使用对磁盘上的数据备份的归挡重做日志文件将该磁盘上的数据恢复到该归档文件数据所在的时间点上,然后再使用在线重做日志文件将适合的时间点上。
归档重做日志文件实质是被添满的旧的在线重做日志的副本。归档重做日志文件是数据库的历史数据。
在线重做日志在每个数据库中至少有两个重做日志组,每个日志组中至少有一个重做日志文件,这些在线重做日志组是循环使用的,当日志组1被写到最后时,然后自动切换到日志组2;当日志组2也被写满时,再切换到日志组1。
2)undo是什么?oracle的undo是如何工作的
undo与redo相反,redo是恢复数据,用于在事务失败时重放事务,undo是撤消一条语句或者一组语句的作用。undo是存储在数据库内部的段或者表空间中(undo如果是手动管理,则使用undo段来管理;如果undo使用AUM管理UNDO,则undo使用表空间来自动管理)。
注意:在undo并不是物理的恢复到执行语句之前或者事务之前的样子,只是逻辑的恢复到原来的样子,所有修改只是逻辑的取消,但是数据结构和数据块在回滚之后也大不相同。原因是在多用户系统中,有很多事务是并发进行的,当一个事务修改一个数据并且被回滚,但是该数据在该用户对该数据做过修改之后也有被其他用户修改,这个时候如果是对该事务修改的数据块回滚到原来数据的物理样子,就有可能将后来的事务所做的修改给覆盖掉。所以回滚不是一个简单的物理的恢复,而是逻辑恢复。
3)undo和redo是如何协作工作的
4)
6.
第四篇:oracle学习心得
一、SQL SERVER的理解
SQL SERVER服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表
1、登录用户可以登录服务器——可以进大楼
2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙
才能进入机房
3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑
二、ORACLE的理解
ORACLE服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表
1、数据库由多个表空间组成——商场里有多家公司组成2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空
间中只有一个段,可以有多个业务,就是一个表空间有多个段
3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理
四、在OEM中管理数据库的步骤
1、创建
1)存储——表空间——创建表空间(TOMSPACE)(类似于在SQL中创建数据库,通常可以省略,使用默认表空间为USERS,临时表空间为TEMP)
2)首先展开安全性——创建新用户(TOM,指定表空间)(类似于在SQL中指定
数据库用户)
3)创建表——指定方案(用户)和表空间(列名不要带<>)
4)设置约束
5)输入信息:方案——用户名——表——右击——查看 /编辑目录…
2、修改
1)方案——用户名——表
2)修改表结构,添加约束
3、删除: 右击表——移去
五、注意事项
1、刚创建的用户不会出现在方案中,只有创建了一个表指定方案和表空间,该用户的方案名就会出现在方案中,此时就可以方便为该方案创建其他表
1)新创建的用户能在SQLPLUS中登录,为什么不能在企业管理器中登录呢?
解答:需要授予 SELECT ANY DIRECTORY权限才能正常登录企业管理器,但没有其他权限
2)可以对创建的用户在安全性中赋予角色权限,如DBA,则该用户就是数据库管理
员
3)SYS用户主要用来维护系统信息和管理实例,只能以SYSOPER或SYSDBA角
色登录
4)安装oracle的用户自动为ora-dba权限,自动是sys用户,所以在登录时不需要
用户名和密码,只要选中以sysdba登录。其他用户登录计算机系统,在使用oracle
时就是正常登录状态了。
2、向表中添加日期数据:时间格式为DD-MM-YYYY怎么修改呢?如何插入时间数
据
1)先在SQLPLUS中SELECT SYSDATE FROM DUAL;就知道日期的格式
2)alter session set NLS_DATE_FORMAT='YYYY-MM-DD';修改当前输入格式
3)oracle中的默认格式是:‘dd-mm-yyyy’ ;修改语句:alter session set
nls_date_format='yyyy-mm-dd';修改后输入和显示都为指定格式,缺点是只对当前会话起作用
假如你是要永久修改的话,改注册表:
regedit->hkey_local_machine->oracle->homeo->
NLS_DATE_FORMAT值YYYY-MM-DD(经验证不管用)
默认日期:50年之前是当前世纪,50年之后是之前世纪,31-12月-49代表2049年01-1月-50 代表1950年
4)由于在表编辑器中to_date函数的格式是dd-mon-yyyy,输入时为如下格式13-6
月-1983(代码编辑时一样,世纪可以省略,代表当前世纪)
5)to_char通常用于查询语句; to_date通常用于增删改语句
6)两个’代表一个’
六、代码编辑器
1、SQL PLUS2、SQL PLUS WORKSHEET3、isqlplus
设置列宽:set linesize 50;
七、与SQL2000中的查询分析器不同,SQL plus worksheet执行所有语句,不单单执行选中语句
八、编辑——清除;可以清除查询结果
九、查看环境变量:select * from v$nls_parameters;
十、示例用户
1)scott/tigernormal登录
2)hr : 需要解锁和重设密码(alter user hr account unlock;)
十一、查看和更改oracle http占用端口号,D:ora9ApacheApacheconf下,httpd.conf和httpd.conf.default中将80修改,然后重新启动HTTP服务 加个字符串
六、工具的使用
1、net manager: 配置服务主机名和监听主机名
2、net configuration assistant:配置监听程序,本地服务名配置等
/*****************************************************************************/ oracle小知识点
1、数据操作时,字段区分大小写
2、Oracle两种认证模式:(1)操作系统认证(2)文件口令认证。
初始化参数的文件目录为D:oracle_programdatabase3、sqlplus中使用 help index查看帮助信息目录,? 命令:查看某个命令的详细用法
连接数据库后才能使用
5、当代码中使用函数时,函数中固定的关键字必须写正确,当放在字符串中的时候,编译没有错误,运行时才会出现错误,通常是SQL递归错误
第五篇:Oracle APEX 学习心得
APEX 简介
这一部分主要使读者熟悉 APEX 的基本概念、环境和使用。本部分介绍了APEX 主要特性,三个组件(应用程序构建器、SQL 工作室、实用工具)和四类用户。本部分回答了以下问题:什么是 APEX? 用 APEX可以做什么?何时使用 APEX?
(所有贴出来的例子均可在http://apex.oracle.com登录jjl/jjl.soft@gmail.com/jjl.soft查看)什么是APEX? 刚刚来到上海,叫我们研究学习一个APEX的东西,一听很新鲜,画面也比form好看,因为是在浏览器看,当时第一反应就是浏览器,那这个是个什么架构,数据会慢嘛 ?结果一看官方文档发现
架构原来是这样,看来担心似乎多余了.Oracle 推荐的环境配置
查阅其他资料得到一下对于APEX的阐释: ,APEX是一个用于 Oracle 数据库的快速 Web 应用程序开发工具。APEX 结合了个人数据库的品质如生产效率、易用性和灵活性,企业数据库的品质如安全性、集成性、可伸缩性和可用性,以及针对Web构建三个方面的优点。APEX 是一个构建 Web 应用程序的工具,而且应用程序开发环境也基于 Web,非常方便。只需在 apex.oracle.com 注册一个帐户即可试用 APEX。开发、部署或运行 APEX 应用程序无需客户端软件。
APEX 提供三大工具:
应用程序构建器(Application Builder)— 创建数据库驱动的动态 web 应用程序。SQL工作室(SQL Workshop)— 浏览数据库对象,运行 SQL 查询、PL/SQL程序以及图形化的查询构建器。
实用程序(Utilities)— 允许从纯文本和电子表格上载和下载数据。所谓上载数据是指将文本文件或电子表格中的数据导入到数据库中。所谓下载数据是指将数据库中的数据保存到文本文件或电子表格中。
APEX可以做什么?
当然,看了一天文档就在想APEX能做的东西能具体到哪儿,于是就开始做一些demo,最开始做的当然就是APEX很强大的报表,以及单一表的表单,以及一些列表啊.日期控件,还有就是关于对这个APEX的布局.这些都很简单,只需要自己动手做做基本就可以了.比stepbysetp还要简单,(所有贴出来的例子均可在http://apex.oracle.com登录jjl/jjl.soft@gmail.com/jjl.soft查看,此处程序名称是zhengwu_demo1)
接下来就在想 要是我是一个头行结构的表单应该怎么弄,于是就把之前项目上的一个简单的头行的form拿来放在这apex环境下来实现.最后也勉强做出来,存在的问题和form的比较有 : 1,值列表的返回,APEX只支持返回单个值,且select语句必须有且只有2个字段,当然显示字段可以通过’||’拼接.2,没有form那么丰富的触发器,只能实现form的简单基本的功能.(所有贴出来的例子均可在http://apex.oracle.com登录jjl/jjl.soft@gmail.com/jjl.soft查看,此处程序名称是主从_demo1)
做到这里就开始想,这个APEX能否处理复杂的逻辑或者其他的什么跟plsql相关的呢, 于是就又开始着手做了一个模拟plsql界面的sql_window.也就是我们做一个报表,上面开个文本框,我们可以在里面写sql语句,对这个表的数据控制.支持批量执行insert,update,delete语句.(所有贴出来的例子均可在http://apex.oracle.com登录jjl/jjl.soft@gmail.com/jjl.soft查看,此处程序名称是bruce_sqlcommand)
最后发现是可以的,具体就是,写一个包写好,包的内容是关于如何处理这个文本框中文本,然后在点下’执行sql’button的时候,调用下,就ok了.做完感觉貌似APEX还是很强大的.应该能够支持动态sql来生成程序.查阅其他资料还有相关如下 : APEX 是构建数据库数据报表应用程序的有效工具。报表通常与其他报表进行超文本链接,允许用户以web 站点的导航方式浏览数据库数据。报表中的列可轻松链接到其他报表、图表和数据项表单,这都是以声明方式完成的。一个全面的图表引擎允许以图形方式表示 SQL 查询,从而可以更有效地进行数据通信。APEX 还非常适合编辑数据库数据并支持大量声明性表单控件,包括单选按钮组、复选框、选择列表、梭形按钮、文本编辑器和日期选择器。
何时使用APEX?
犹豫在这边具体的开发项 还有具体的开发环境,所以一直推迟着,关于什么时候使用,也是模糊的.查阅其他资料 : 由于其易用性,APEX 旨在快速构建机会性和部门级应用程序。这些应用程序部署在web 上,具有优越性能。以前,部门、原型和小项目依赖桌面数据库提供快速的开发工具,以满足这些规模较小的或部门级应用程序开发的需求。桌面数据库可能非常零散,因为它们在多处保存数据,它们可能非常脆弱或者不适用于敏感信息,而且它们通常不是 web 友好
的。基于浏览器的设计时界面(声明式编程框架)和简单的向导使 APEX 成为多用户桌面数据库应用程序(例如,Microsoft Access)的理想替代品。
SQL Savvy 应用程序开发人员还可以体会到易用性,因为您即使具有很少的 web 体验甚至没有该体验也可以创建数据库应用程序。无需学习脚本语言或复杂的部署框架,只需编写几个查询并从已经构建好的用户界面主题和表单控件中选择即可创建高度专业、安全且可伸缩的应用程序。
使用 APEX,开发是高度声明式的。这意味着很多情况下,您不需要编写任何代码,而由您与向导和属性表进行交互,就可完成程序开发。SQL 语言用于定义报表和图表,因此懂一些 SQL 知识很有帮助。可选择使用 PL/SQL 编写代码段(如果需要过程逻辑)。声明式开发给开发人员带来较少的差异,该一致性使 APEX 应用程序易于维护和管理。
APEX 引擎从存储在数据库表中的数据实时呈现应用程序。当您创建或扩展应用程序时,APEX 创建或修改存储在数据库表中的元数据。当应用程序运行时,APEX 引擎读取元数据并显示应用程序。APEX 完全驻留在 Oracle 数据库中。它仅由表中的数据和大量 PL/SQL 代码组成。APEX 大约由 215 个表和 200 个 PL/SQL 对象(包含 300,000 多行代码)组成。
为了在应用程序内提供有会话状态行为,APEX 以透明的方式在数据库中管理会话状态。应用程序开发人员可以使用简单的替换以及标准的 SQL 绑定变量语法获取和设置会话状态。
APEX 主要特性
以下几部分介绍了 APEX 的主要特性。
报表:使用 APEX,可快速生成显示 SQL 查询的 HTML 报表。还能以 HTML、PDF、RTF(兼容 Microsoft Word)和 XLS(兼容 Microsoft Excel)格式下载和打印报表。
可通过声明方式将各个报表链接在一起提供下钻报表,并使用绑定变量将信息从会话状态传递至报表。报表支持声明式列标题排序、分组控制、汇总以及分页。报表排序和分页可以使用部分页面刷新(PPR)技术来避免刷新整个页面。还可以向报表添加声明式链接,以将报表数据下载为 CSV 或 XML 格式。此外,您可以使用模板对报表外观进行自定义。
表单:使用向导,可以基于表或存储过程轻松创建表单。基于表创建表单时,这些向导将自动管理插入、更新、删除以及缺失更新检测等操作。一旦创建了表单,就可使用直观显示的界面重新排列表单域(称为表单项),以快速获得想要的布局。表单项提供了丰富的显示选项,包括文本域、文本区、单选按钮组、选择列表、复选框、日期选 择器、弹出式值列表等。
图表:还可使用向导创建 HTML、SVG 或 Flash 图表。此外,可创建图表来支持用户从一个图表下钻至另一个图表或报表。可使用部分页面刷新(PPR)技术刷新图表以避免刷新整个页面。也可将图表配置为按指定间隔刷新。此外,还可利用报表列模板向任意报表添加简单的 HTML 条形图。
电子表格上载:使用电子表格向导中的 Create Application 可快速地将电子表格数据直接上载至数据库中。您可以选择将数据存储在新的数据库表中,或将其添加至现有数据库表。一旦上载了数据,就可以快速创建应用程序了。通过这个方便的向导,只需单击几下,就可以实现电子表格与共享应用程序之间的切换。
会话状态管理:APEX 以透明的方式管理数据库中的会话状态(或应用程序上下文)。表单将自动保存会话状态,记住会话中应用程序的上下文。在 SQL 和 PL/SQL 内引用会话状态就像使用绑定变量般简单。例如,请看以下 SELECT 语句:
SELECT * FROM EMP WHERE EMPNO = :P1_ID 在本例中,P1_ID 项中的值在运行查询时自动进行绑定。还可通过给项名称加上前缀 & 符号和后缀句点(.)在静态上下文内引用会话状态,例如:&P1_NAME.对于二维数据集的管理,APEX 提供了一个强健的集合基础架构。最值得一提的是,会话管理是无会话状态的,不会消耗内存。
用户界面主题:APEX 将显示(或用户界面主题)与应用程序逻辑相分离。您可以用一个主题设计应用程序,然后更改为另一个附带主题,或者创建和使用自己的自定义的主题。通过将应用程序逻辑(如查询、流程以及分支)与 HTML 呈现分离,应用程序可在第一时间利用新设计和其他技术,而无需重写应用程序。
流控制和导航:每个 Web 应用程序都需要导航,而每个动态应用程序都需要流控制。APEX 提供了内置的组件,简化了导航控件的开发和维护。导航是通过使用声明式选项卡(一级或二级)、路径式导航项、树控件以及链接列表来进行控制的。而流控制是通过使用可在特定事件以及一定条件下起作用的声明式分支来实现的。由于导航控件的外观通过模板控制,因此可轻松更改导航控件的外观。
所有组件上的条件控制:创建动态 Web 应用程序时,许多应用程序组件和处理都是具有条件的。换言之,您只能基于应用程序上下文、数据、事件或权限显示或处理特定的信息。APEX 使您能够以声明方式指定所有组件的条件性。这使得您可以精确控制用户可在选项卡、按钮、项目、列表项等上看到的内容。
外部接口和可扩展性:尽管 APEX 为构建应用程序提供了强健的声明式环境,但您还是可以选择开发自定义界面或控件。例如,如果一个组件不符合环境需要,您可以使用 PL/SQL 生成自己的自定义 HTML。您还可以使用 Web 服务调用外部服务。APEX 包含的 API 可以方便将电子邮件警报集成到应用程序中。此外,因为 APEX 驻留在 Oracle 数据库中,所以您可以利用数据库本身的功能,如外部表、PL/SQL、数据库链接、网关以及数据库 Java 来扩展应用程序功能。APEX中也允许使用JavaScript、CSS以及AJAX等技术。
安全性:利用 APEX,您可以创建无需用户登录的公共应用程序,或创建要求身份验证的安全应用程序。APEX 提供了许多内置的身份验证模式(包括一次性登录、数据库帐户证书)和一个易于使用的用户管理系统。您还可使用可与任何身份验证服务(包括 Microsoft Active Directory 和 Oracle Applications)交互的自定义模式。
此外,您可自定义身份验证以满足环境要求,并选择性地对整个应用程序、页面或页面组件应用身份验证。最后,您还可利用创新的会话状态保护特性来防止 URL 篡改,利用内置特性来保护应用程序免受 SQL 注入攻击和跨站点脚本编写(XSS)攻击。
SQL Workshop 工具:SQL Workshop 提供的工具支持从 Web 浏览器查看和管理数据库对象。使用 SQL 命令运行 SQL 和 PL/SQL 语句。Query Builder 支持通过拖放表格定义查询,轻松创建对象间的关联。Object Browser 提供了一个易于使用的图形用户界面,可用于查看、创建、浏览以及删除数据库对象。最后,您可使用 SQL 脚本工具创建、编辑、查看、运行以及删除脚本文件。Supporting Objects 实用程序:通过创建一个打包应用程序,您可以简化在另一个 APEX 中导出和安装应用程序所需的步骤。使用 Supporting Objects 实用程序,您可以通过脚本处理应用程序定义,以创建数据库对象、种子数据、图像、层叠样式表和 JavaScript。
打包的应用程序的创建可向应用程序用户提供类似于安装程序的体验,并使在另一个开发、测试甚至是生产实例中导入并安装应用程序的过程自动化。
性能:APEX 可为应用程序开发人员和应用程序用户提供极高级别的性能。因为 APEX 驻留在 Oracle 数据库中,所以其对网络流量影响甚小。此外,Application Builder 还有许多监视报表,使你能够识别并调整应用程序性能。
打包的应用程序:打包的应用程序是一个可以使用和自定义的功能齐全的应用程序。打包的应用程序不仅阐释 APEX 应用程序的有趣示例,还提供立即有用的战术性业务应用程序。打包的应用程序可立即运行 — 它们提供数据库模式、种子数据、图像、应用程序定义以及您所需的一切,安装只需使用向导即可完成。
托管开发:APEX 支持在单个数据库中托管大量用户。用户在一个称为工作区的专用工作区域中工作。这种灵活的体系结构使单个数据库实例可以管理数千个应用程序。您可确定供应(或创建)工作区的过程的工作方式。在请求供应模式下,用户在登录页面上使用链接来请求一个工作区。工作区请求批准后,用户会收到一封包含链接的电子邮件,用户必须单击链接来验证其电子邮件地址的有效性。然后他们收到一封具有其登录凭据的电子邮件。
APEX 工作区和用户类型
应用APEX来开发应用程序的准备工作可按如下步骤进行:
1)安装Oracle数据库
2)安装 APEX,参见附录1 3)登录APEX管理界面,创建工作区,创建工作区用户 4)登录APEX工作区,开发应用程序
现在假设Oracle数据库和Oracle APEX 已经安装,我们来看一下如何创建工作区及工作区用户。
那么,什么是工作区(workspace)?简单的说,工作区就是用户用来开发应用程序的地方。工作区是一个虚拟的私有数据库,它能使多个用户同时使用相同的APEX实例,而能保持其数据库对象和应用程序为私有,互不影响,互相看不到对方的工作从而也不会影响互相的工作。每一个工作区都有一个唯一的ID和名称。
在一个APEX实例中,可以只创建一个工作区,由所有开发人员共享使用。也可以创建多个工作区,在每个工作区内完成指定项目,并且只允许项目开发人员访问其项目所在的工作区。项目开发人员要使用工作区,必须先要有APEX用户帐号,并且使用此用户帐号登录到工作区。
APEX用户帐号分为4种不同的类型:
APEX管理员:这是超级用户,负责管理整个的APEX实例,其中既包括服务的管理,也包括工作区的管理。在安装APEX时,默认创建了一个这样的用户,名为admin,口令是安装APEX时设置的。 APEX开发人员:这是可以创建和修改应用程序的用户。开发人员属于某个工作区。一个工作区可以有多个开发人员。 APEX工作区管理员:当一个开发人员被授予对他所属的工作区的管理权限时,他就成为了工作区管理员。工作区管理员可以在他的工作区中添加新的用户、创建新的用户组和查看使用报告。 APEX最终用户:这是没有开发和管理权限的用户,只有运行应用程序的基本权限。要注意区分APEX用户和Oracle数据库用户。这是完全不同的概念。Oracle数据库用户经适当授权(用GRANT语句)后,可以登录数据库,创建、使用各种数据库对象。但Oracle数据库不能够登录APEX环境。APEX用户也无权直接登录数据库(例如,使用CONNECT命令)。但是,APEX开发人员可以在自己的工作区内通过SQL工作室访问和使用工作区关联模式(schema,有的书上也称为方案)内的数据库对象。
首先,登录APEX管理界面。在浏览器中输入URL:http://127.0.0.1:8080/apex/apex_admin(参见附录11.4确认安装成功)。此时,会显示登录画面:
使用admin用户登录APEX,可见下图:
点击“管理工作区”,可见下图:
工作区是多个开发者创建应用程序的共享工作区域。每个工作区都具有作为一个或多个数据库方案进行语法分析的权限。使用上图中的“创建工作区”、“删除工作区”链接,可进行工作区的创建和删除。一个工作区可以关联到一个或多个数据库方案,使用上图中的“管理工作区到方案的分配” 链接可以添加更多方案到工作区。使用上图中的“管理开发者和用户” 链接可以创建、删除APEX用户,也可重设APEX用户口令,解锁APEX用户帐号。
以上操作都是基于向导来完成的,或直接通过页面操作完成,比较简单,在这里就不再赘述,由读者自己来探索完成。
安装、运行演示程序
由于开发没有具体的环境,所以项目经理叫我们研究如何把apex安装到一个新环境,但是由于没有测试环境,所以这个任务我暂时就是在自己的虚拟机(培训的时候用的syfdemo.ml.com),最后安装失败了,但是我觉得跟我的虚拟机有关.真想有个环境在弄一把,目前这个可怜的虚拟机被弄的面目全非了
安装心得如下:总共我安装了3次,前2次非常失败,后面一次算好的,在第三次的基础上又重新配置了5,6次rest data service.最后都是没有成功,总结了下,前2次失败的原因是因为 第一,原先自带的apex删掉比较好
第二,安装apex的时候,还是强烈建议自己定义表空间
第三,在我的虚拟机安装jdk(6.0以上,原本自带的应该是4.0)之后,应该要删掉原来的版本.否则java –version不对,而且最后执行jar也会报错
---参考文档http://blog.sina.com.cn/s/blog_828efd6501019rl3.html---Application Express Installation Guide(e21673)(较详细)---APEX_EBS_Extension_White_Paper_-_Revision_1b(概括性的)<都需要先切到apex所在目录,因为这些脚本都在那里,如果默认装了3.0,需要找到目录,或者解压一个其他版本运行相关脚本> 1,10g自带3.0的apex, remove掉 @apxremov.sql
2,安装: CONNECT SYS/SYS_password as SYSDBA @apexins.sql SYSAUX SYSAUX TEMP /i/ <此处强烈建议自己建立相应的表空间,否则可能会出现如下错误> //error WWV_FLOW_API.ERR_PAGE_CREATE ORA-01400: cannot insert NULL into(“APEX_040200”.“WWV_FLOW_STEPS”.“SECURITY_GROUP_ID”)declare * ERROR at line 1: ORA-02291: integrity constraint(APEX_040200.WWV_FLOW_PLUG_TO_PAGE_FK)violated-parent key not found ORA-06512: at “APEX_040200.WWV_FLOW_API”, line 9434 ORA-06512: at line 11
3,修改admin密码(apex)@apxchpwd.sql(有复杂规则)4,此处应该有restartProcess(没有做出来)
5,配置RESTful Services@apex_rest_config.sql(该命令让你配置APEX_LISTENER和APEX_REST_PUBLIC_USER的密码)可能会报错<跟之前第二步有关> //ERROR at line 1: ORA-01400: cannot insert NULL into(“APEX_040200”.“WWV_FLOW_FND_USER_GROUPS”.“ID”)ORA-06512: at “APEX_040200.WWV_FLOW_LISTENER”, line 382 ORA-06512: at “APEX_040200.WWV_FLOW_LISTENER”, line 457 ORA-06512: at line 3 //
6,解锁更改APEX_PUBLIC_USER的密码
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK ALTER USER APEX_PUBLIC_USER IDENTIFIED BY SYS_bruce1
should be 6.5 安装jdk.并设置路径
7,安装apex listener
java –jar apex.war(具体原因是因为漏掉一步,我们需要在对应的服务器安装6.0以上的jdk,并设置路径否则报错如下)// Exception in thread “main” java.lang.NoClassDefFoundError: 篓Cjar
at gnu.gcj.runtime.FirstThread.run()(/usr/lib/libgcj.so.5.0.0)
at _Jv_ThreadRun(java.lang.Thread)(/usr/lib/libgcj.so.5.0.0)
at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean)(/usr/lib/libgcj.so.5.0.0)
at __gcj_personality_v0(/home/oracle/java.version=1.4.2)
at __libc_start_main(/lib/tls/libc-2.3.4.so)
at _Jv_RegisterClasses(/home/oracle/java.version=1.4.2)// 8按照官方文档应该如下: 9,Enable Network Services in Oracle Database 11g ■
我应该是坐到这里了
最后出现了GLASSFISh SERVERok的画面
但是就是另外一个需要配置
另外一个我参照oracle官方文档试了N多次 最后还是一个效果…不得其解(关于好多unix的都不是很懂,看来需要加强学习,等经理安装好了,一定要问问,how,why)
10,Security Considerations ■
11,About Running Oracle Application Express in Other Languages ■
12,About Managing JOB_QUEUE_PROCESSES ■
13,Create a Workspace and Add Oracle Application Express Users