oracle笔记七(其他)
2021学年Oracle深度学习笔记ORACLE审计

27.Oracle深度学习笔记——ORACLE审计审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system 表空间中的SYS.AUD$表中不管是否打开数据库的审计功能,用管理员权限连接Instance;启动数据库;关闭数据库都会被记录。
1.相关参数:audit_sys_operations12C默认TRUE当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。
如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。
audit_trail12C默认DBDB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;None:不做审计;2.审计级别开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)、object(对象)。
Statement按语句审计,如audit table 会审计数据库中所有的create table,drop table,truncate table语句Privilege按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了audit select any table语句后,当用户 a 访问了用户b的表时(如select * fromb.t)会用到select any table权限,故会被审计。
Oracle数据库学习笔记_Oracle添加主键primarykey的四种方法

Oracle数据库学习笔记_Oracle添加主键primarykey的四种⽅法创建主键oracle主键添加语句通常紧跟在建表语句之后,也可以直接嵌在列声明⾥创建,oracle创建主键时会⾃动在该列上创建索引。
常见⽅法⼤概有以下5种:⽅法⼀、使⽤add constraint ⽅法添加主键约束alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)⽅法⼆、使⽤索引创建主键(和⽅法⼀没有区别,可以将⽅法⼀理解为省略了using index)alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)using index [index_name];当省略using index后⾯的index_name时,创建主键的同时创建同名索引;当使⽤已有索引index_name创建主键时,注意索引列和主键列应该相同才能创建成功。
⽅法三、直接添加主键alter table 表名 add primary key (列名1,列名2,...) ;同样,创建主键的同时创建同名索引。
⽅法四、参数列内添加主键create table ALERT_RESULT_EVENT_C(data_date VARCHAR2(8) not null,object_id VARCHAR2(600) not null,event_id VARCHAR2(20) not null,ratio NUMBER(22,4),pairing_object_id VARCHAR2(128),index_value_1 VARCHAR2(128),index_value_2 VARCHAR2(128),constraint PK_ALERT_RESULT_EVENT_C primary key (DATA_DATE, OBJECT_ID, EVENT_ID));删除主键alter table 表名 drop primary key ;采⽤该语句删除主键时,同名索引也会被删掉。
Oracle EBSGL学习笔记

12.81、冲销日记账1)原始借:租金10,000 本位币美元贷:现金10,000 本位币美元冲销借:现金10,000 本位币美元贷:租金10,000 本位币美元2)可以创建冲销日记账分录来冲销应计、估计、临时调整和重新分类,或更正错误。
3)方法:转换借贷项:通过转换借项和贷项金额来冲销日记账分录。
红字冲销:通过将原始日记账金额从正值改为负值来冲销日记账分录。
4)日记账> 输入> 复核日记账(B)其他活动日记账> 生成> 冲销2、自动冲销日记账1)可以自动冲销上一个月的应计日记账分录,并自动将其过账(如果需要)。
2)自动冲销日记账的前提条件:--日记账余额类型为“实际”--日记账类型已启用“自动冲销”选项--日记账已过帐,但尚未冲销--日记账冲销期间为“打开”或“将来可输入”3) 设置> 日记账> 自动冲销(AutoReverse)3、日记账分录报表提供:会计结算日期、类别、日记账名称、参考、日记账批4、与Oracle General Ledger 集成--在Excel中创建日记账--通过Web ADI 加载到GL_INTERFACE 表--从接口表中提交“日记账导入”-从Web ADI中与加载流程同时提交-从Web ADI 中作为独立的提交流程提交-从Oracle General Ledger中使用“导入日记账”窗口提交5、Web ADI 的核心功能1)布局功能--从布局中删除或向布局中添加字段--指定字段在布局中的位置--为布局中的字段分配默认值--保存布局,可以由具有适当责任的某个人来定义,然后由整个站点使用2) 文本导入功能--将文本文件数据导入到桌面文档中--创建可以修改和重复使用的映射模板,根据需要更改数据临时的移动目标。
3) 安全功能--将Web ADI 功能与菜单关联,创建用作安全配置文件的自定义访问点--将菜单附加到分配给用户的职责中,用用户级别限制Web ADI访问--为自助连接添加默认参数:强制用户在其桌面上生成文档时使用预定义的参数--将表单功能与用户的菜单关联,已授予其访问集成器的权限4) Internet 计算功能--集中部署,要操作词产品,客户机只需要浏览器和Excel--在Web 上运行6、通过Web ADI 进行桌面集成1) 集成器:Oracle General Ledger-日记账集成器、Oracle General Ledger-预算集成器、创建资产集成器、实地盘点集成器、HRMS集成器2)Oracle General Ledger-日记账集成器:--根据可定义的布局,自动生成基于电子表格的日记账分录工作表--允许通过复制和粘贴日记账行,然后进行增量式修改来快速的输入日记账--允许您定义可以反复修改和加载的日记账模板--使用安全措施和交叉验证规则以及其他引用字段全面验证账户--通过Oracle General Ledger开放接口将日记账加载到Oracle General Ledger7、导入日记账日记账> 导入> 运行1)将子分类帐和源系统数据导入Oracle General Ledger--定义分类账、币种、帐户、日记账来源和类别设置Oracle General Ledger,以接受日记账导入数据--运行“优化”程序,并定义并发程序控件。
韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。
学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。
期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。
Oracle数据库学习笔记

Oracle数据库学习笔记Oracle数据库基础 orcale属于关系型数据库,适⽤于各类⼤,中,⼩,微机环境,是⼀种⾼效率、可靠性好的、适应⾼吞吐量的数据库⽅案。
学习,实验完全免费,商⽤需要⽀付相应费⽤。
Oracle 数据库包括数据库实例,和数据库,⼆者脱离谁都没有存在的价值。
实例是⽤来操作数据库的对象,数据库是⽤来存储数据使⽤的。
Oracle主要组件包含实例组件,数据库组件。
SGA(System Global Area)是Oracle Instance的基本组成部分,PGA(Process Global Area)是为每个连接到Oracle database的⽤户进程保留的内存。
每个实例只有⼀个SGA,所有的进程都能访SGA。
PGA是程序全局区,每个⼀个进程都⼀个PGA,PGA是私有的,只有对应进程才能访问对应的PGA。
数据库中包含:参数⽂件,⼝令⽂件,数据库⽂件,控制⽂件,⽇志⽂件以及归档⽇志⽂件。
Oracle实例进场包含⽤户进程,服务器进程和后台进程。
SGA:系统全局区 系统全局区包含共享池,数据缓冲区,⽇志缓冲区。
“共享池”:是对SQL,PL/SQL程序进⾏语法分析,编译,执⾏的内存区;由库缓存和数据字典缓存组成;其⼤⼩直接影响数据库性能。
“数据缓冲区”:临时存储从数据库读⼊的数据,所有⽤户共享,数据缓存区的⽬的是加快数据读写。
“⽇志缓冲区”:⽇志记录数据库所有修改信息,其先产⽣于⽇志缓冲区,当达到⼀定数量时,由后台进程将⽇志数据写到⽇志⽂件中。
PGA:程序全局区 PGA包含单个服务器进程所需要的数据和控制信息,在⽤户进程连接到数据库并创建⼀个会话时⾃动分配的,保存每个与数据库连接的⽤户进程所需要的信息。
PGA为⾮共享区,只能单个进程使⽤,当⼀个⽤户会话结束,PGA释放。
后台进程 后台进程中包含PMON(进程监视器(Process Monitor)),SMON(系统监视器(System Monitor)),DBWR(数据库书写器(Database Write)),LGWR(⽇志书写器(Log Write)),CKPT(检查点(Checkpoint)),以及其他。
oracle分组排序汇总笔记

一、相关函数:Group by、Rollup、Cube、Grouping sets、Over、Grouping_id、Grouping、Decode、lag、lead、rank、dense_rank、row_number、count二、初始化数据:-- Create tablecreate table EMPLOYEE(EID NUMBER not null,ENAME V ARCHAR2(20) not null,EADDRESS V ARCHAR2(200) not null,E_DID NUMBER not null,HIRE_DA TE DA TE not null,SALARY NUMBER(8,2) not null,BONUS NUMBER(8,2),BOSS NUMBER)tablespace USERSpctfree 10initrans 1maxtrans 255storage(initial 64minextents 1maxextents unlimited);-- Create/Recreate primary, unique and foreign key constraintsalter table EMPLOYEEadd primary key (EID)using index;--insert contentinsert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (1, '郭芙', '广东', 1, to_date('02-01-2006', 'dd-mm-yyyy'), 2000.5, 100.5, 10);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (3, '杨康', '成都', 3, to_date('14-07-2004', 'dd-mm-yyyy'), 3000, null, 10);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (9, '杨过', '广东', 1, to_date('02-03-2005', 'dd-mm-yyyy'), 2000, 1000, 10);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (10, '小龙女', '广东', 2, to_date('05-04-2000', 'dd-mm-yyyy'), 8000, null, 10);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (11, '郭襄', '广东', 3, to_date('01-12-2010', 'dd-mm-yyyy'), 5000, null, 10);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (14, '郭靖', '成都', 2, to_date('08-07-2008', 'dd-mm-yyyy'), 4300, null, 14);insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS)values (15, '黄蓉', '成都', 3, to_date('13-05-2009', 'dd-mm-yyyy'), 1600, 200, 14);commit;三、具体应用:1、group by与rollup:select eaddress a ,ename b,sum(salary) c from employee group by rollup(eaddress, ename)图1分析:如图,这里不光只对第一个字段做了累计,先按(eaddress,ename)分组累计,再按(eaddress)分组累计,最后累计全部类似于:select * from(select eaddress,ename,sum(salary) a from employee group by eaddress,enameunion allselect eaddress,null,sum(salary) from employee group by eaddressunion allselect null,null,sum(salary) from employee)2、group by 与cube;select eaddress a ,ename b,sum(salary) c from employee group by cube(eaddress, ename) order by a,b图2分析:CUBE这里的使用与ROLLUP基本相同,但CUBE的合计更加详细,它能够显示次分组字段的合计信息类似于:select eaddress a,ename b,sum(salary) c from employee group by grouping sets((eaddress,ename),(eaddress),(ename),()) order by a,b3、group by 与grouping setsselect eaddress a ,ename b,sum(salary) c from employee group by grouping sets((eaddress, ename),())图3-1select eaddress a ,ename b,sum(salary) c from employee group by grouping sets((eaddress, ename),(eaddress),())图3-2分析:Group by grouping sets可以应用来指定自己感兴趣的总数组合。
Oracle学习材料

1.数据库的逻辑结构是由块、区、段和表空间组成的。
2.数据库的操作模式包括专用服务器和共享服务器。
3.Oracle关闭数据库的4种方式是正常关闭方式(NORMAL)、事务关闭方式(TRANSACTIONAL) 、立即关闭方式(IMMEDIA TE) 和强制关闭方式(ABORT) 。
4.重做日志文件的内容由重做记录组成,并且是由日志写进程(LGWR)后台进程写入到日志文件中的。
5.表空间有两种区管理方式,分别是本地管理和字典管理。
6.用户的验证方式有口令验证、外部验证和全局验证3种。
7.Oracle将权限分为系统权限和对象权限2种。
8.非系统表空间分为永久表空间、临时表空间和还原表空间三种类型。
9.SQL语句CREA TE TABLESPACE用于创建表空间。
10.Oracle关闭数据库的3个步骤是关闭数据库、卸载数据库和打开数据库。
11.初始化参数文件的两种类型分别是静态参数文件和服务器参数文件。
12.非系统表空间分为永久表空间、临时表空间和还原表空间三种类型。
13.概要文件主要提供资源限制和口令管理功能。
14.创建用户的SQL语句是CREA TE USER ,更改用户的SQL语句是ALTERUSER ,删除用户的SQL语句是DROP USER 。
15.使用OEM控制台创建用户时,系统将自动授予用于CONNECT 角色。
16.PL/SQL语句块分成标题部分、声明部分、执行部分和异常部分17.常用的单行函数可分成以下几类:系统变量、系统变量、_数字_、_字符_、_日期_、_数据类型转换和其他函数。
18.非系统表空间分为、和重做表空间三种类型。
19.Oracle数据库服务器由________和________构成。
20.在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用语句,收回所授的权限使用语第1页,共9页句。
21.当对某一表进行诸如、和这些操作时,oracle 就会自动执行触发器所定义的SQL 语句。
Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.如何限定特定IP访问数据库可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:增加如下内容:tcp.validnode_checking=yes#允许访问的iptcp.inited_nodes=(ip1,ip2,...)#不允许访问的iptcp.excluded_nodes=(ip1,ip2,...)2.如何穿过防火墙连接数据库这个问题只会在WIN平台出现,UNIX平台会自动解决。
解决方法:在服务器端的SQLNET.ORA应类似SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)TRACE_LEVEL_CLIENT = 16注册表的HOME0加[HKEY_LOCAL_MACHINE]USE_SHARED_SOCKET=TRUE3.如何利用hostname方式连接数据库host name方式只支持tcp/ip协议的小局域网修改listener.ora中的如下信息(SID_DESC =(GLOBAL_DBNAME = ur_hostname) --你的机器名(ORACLE_HOME = E:\oracle\ora92) --oracle home(SID_NAME = orcl) --sid name)然后在客户端的sqlnet.ora中,确保有NAMES.DIRECTORY_PATH= (HOSTNAME)你就可以利用数据库服务器的名称访问数据库了4.dbms_repcat_admin能带来什么安全隐患如果一个用户能执行dbms_repcat_admin包,将获得极大的系统权限。
以下情况可能获得该包的执行权限:1、在sys下grant execute on dbms_repcat_admin to public[|user_name]2、用户拥有execute any procedure特权(仅限于9i以下,9i必须显示授权)如果用户通过执行如下语句:exec sys.dbms_repcat_admin.grant_admin_any_schema('user_name');该用户将获得极大的系统特权可以从user_sys_privs中获得详细信息5.在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户?我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用需要Alter user权限或DBA权限:SQL> select password from dba_users where username='SCOTT'; PASSWORD-----------------------------F894844C34402B67SQL> alter user scott identified by lion;User altered.SQL> connect scott/lionConnected.REM Do whatever you like...SQL> connect system/managerConnected.SQL> alter user scott identified by values 'F894844C34402B67';User altered.SQL> connect scott/tigerConnected.6.如何加固你的数据库要注意以下方面1. 修改sys, system的口令。
2. Lock,修改,删除默认用户:dbsnmp,ctxsys等。
3. 把REMOTE_OS_AUTHENT改成False,防止远程机器直接登陆。
4. 把O7_DICTIONARY_ACCESSIBILITY改成False。
5. 把一些权限从PUBLIC Role取消掉。
6. 检查数据库的数据文件的安全性。
不要设置成666之类的。
检查其他dba 用户。
7. 把一些不需要的服务(比如ftp, nfs等关闭掉)8. 限制数据库主机上面的用户数量。
9. 定期检查Metalink/OTN上面的security Alert。
比如:/deploy/security/alerts.htm10. 把你的数据库与应用放在一个单独的子网中,要不然你的用户密码很容易被sniffer去。
或者采用advance security,对用户登录加密。
11. 限止只有某些ip才能访问你的数据库。
12. lsnrctl 要加密码,要不然别人很容易从外面关掉你的listener。
13. 如果可能,不要使用默认1521端口7.如何检查用户是否用了默认密码如果使用默认密码,很可能就对你的数据库造成一定的安全隐患,那么可以使用如下的查询获得那些用户使用默认密码select username "User(s) with Default Password!"from dba_userswhere password in('E066D214D5421CCC', -- dbsnmp'24ABAB8B06281B4C', -- ctxsys'72979A94BAD2AF80', -- mdsys'C252E8FA117AF049', -- odm'A7A32CD03D3CE8D5', -- odm_mtr'88A2B2C183431F00', -- ordplugins'7EFA02EC7EA6B86F', -- ordsys'4A3BA55E08595C81', -- outln'F894844C34402B67', -- scott'3F9FBD883D787341', -- wk_proxy'79DF7A1BD138CF11', -- wk_sys'7C9BA362F8314299', -- wmsys'88D8364765FCE6AF', -- xdb'F9DA8977092B7B81', -- tracesvr'9300C0977D7DC75E', -- oas_public'A97282CE3D94E29E', -- websys'AC9700FD3F1410EB', -- lbacsys'E7B5D92911C831E1', -- rman'AC98877DE1297365', -- perfstat'66F4EF5650C20355', -- exfsys'84B8CBCA4D477FA3', -- si_informtn_schema'D4C5016086B2DC6A', -- sys'D4DF7931AB130E37') -- system/8.如何修改默认的XDB监听端口Oracle9i默认的XML DB把HTTP的默认端口设为8080,这是一个太常用的端口了,很多别的WebServer都会使用这个端口,如果我们安装了它,最好修改一下,避免冲突,如果不使用呢,就最好不要安装提供三种修改的方法1.dbca,选择你的数据库,然后Standard Database Features->Customize->Oracle XML DB option,进入这个画面你应该就知道怎么改了。
2.OEM console,在XML Database 的配置里面修改3.用oracle提供的包:-- 把HTTP/WEBDAV端口从8080改到8081SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))/-- 把FTP端口从2100改到2111SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))/SQL> commit;SQL> exec dbms_xdb.cfg_refresh;-- 检查修改是否已经成功SQL> select dbms_xdb.cfg_get from dual;9.怎么捕获用户登录信息,如SID,IP地址等可以利用登录触发器,如CREATE OR REPLACE TRIGGER tr_login_recordAFTER logon ON DATABASEDECLAREmiUserSid NUMBER;mtSession v$session%ROWTYPE;CURSOR cSession(iiUserSid IN NUMBER) ISSELECT * FROM v$sessionWHERE sid=iiUserSid;BEGINSELECT sid INTO miUserSid FROM v$mystat WHERE rownum10.程序报错ORA-01555: snapshot too old: rollback segment number 148 with name"_SYSSMU148$" too small可以查询错误原因oerr ora 01555得到如下信息01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"// *Cause: rollback records needed by a reader for consistent read are// overwritten by other writers// *Action: If in Automatic Undo Management mode, increase undo_retention// setting. Otherwise, use larger rollback segments说明一个事务的执行时长超过了系统设定的最大值.SQL> show parameters undo比如NAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 16200undo_suppress_errors boolean FALSEundo_tablespace string UNDOTBS2则说明是16200秒.11.如果你要用ultraEdit-32编辑oracle脚本,可以设置对关键字不同亮度的显示。