从Oracle9i中发送电子邮件
Oracle的包utl_smtp提供了从数据库中直接发送电子邮件的功能,这里介绍一下其使用方法网上找到的例子以及Oracle文档中的例子都没有提到authorized的问题,我的测试中使用的是163的免费信箱,发送时老是报错:ORA-20000: Failed to send mail due to the following error: ORA-29279: SMTP 永久性错误: 553 You are not authorized to send mail as <MAIL FROM:demo@163.com>, authentication is required后来在metalink上找到解决方法:要在程序中增加登录smtp服务器的过程![@more@] 测试环境: RedHat AS 3.0 Oracle
【工作日志】数据迁移完整过程
任务:将旧数据库中的数据完全导出到新数据库中环境:旧数据库:CPU UltraSPARC-II 400MHz × 1 Mem 512M SunOS 5.8 Oracle 8.1.7.0 新数据库:CPU Intel 2.80GHz × 2 Mem 2048M RedHat AS 3.0 Oracle 9.2.0.4 [@more@]步骤:( 注:考虑篇幅, 本文中仅列出实际操作中部分代码 )1、使用toad > dba > generate database script工具生成旧数据库的脚本,从中提取出表空间和用户 的创建语句,将创建表空间
对IN & EXISTS NOT IN & NOT EXISTS的优化
在平时工作中,IN & EXISTS NOT IN & NOT EXISTS是使用频率比较高的SQL语句,所以对它们的优化工作是很有必要的测试环境:Oracle 9.2.0.1 for Windows2000[@more@]1、IN 和 EXISTS IN和EXISTS的处理流程是不一样的: IN的执行流程 select * from T1 where x in ( select y from T2 ) 可以理解为: select * from t1, ( select distinct y from t2 ) t2 where t1.x = t2.y; EXISTS的执行流程 select * from t1
显示段对象的空间信息show_space (适用于9i版本)
show_space这个函数最先是Tom在《expert one-on-one》中用到的,用来查看对象的空间使用情况,但是他用的适用于8i版本,9i有许多新特性没法用到,itpub上出了一个for 9i的版本,作者xzh2000,我做了一些改动便于自己使用[@more@]create or replace procedure show_space /* 描述:本程序是针对Oracle 920以上版本的 last updated 2004-12-14 by yaanzy 注意:表的类型(ASSM、MANUAL)一定要输入准确,否则程
发现一个SQL语句在RBO和CBO下居然返回不同结果
创建测试用表:create table aaa (a1 varchar2(10));insert into aaa values ('2004-12-09');insert into aaa values ('0000-00-00');commit;[@more@]运行语句1:select * from ( select a1 mon from aaa) c , ( select to_date(a1,'yyyy-mm-dd') mon from aaa where a1 >'2' group by to_date(a1,'yyyy-mm-dd') ) dwhere d.mon < sysdate;报错:ERROR 位于第3行: ORA-01843: 无效的日期执行计划如下:Execution Plan-----
基于函数的索引(FBI)
从8i开始,可以根据调用PL/SQL存储函数的表达式来创建索引,叫基于函数的索引(FBI),这使我们从SQL语句中调用函数时可以使用索引功能 [@more@]例如:create index student_index on students (substr(student_name,1,20)) compute statistics; 则在语句: select * from students where substr(student_name,1,20)='Tom'; 可以使用到该索引注意:下面这几个参数必须在init.ora里边指定,否则不能启用该功能: QUERY_REWRITE_INTEGRITY = TRUSTED
[原创]Oracle 9i 分析函数参考手册
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。[@more@]下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。 少数几个例子需要访问SH用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_history/sh_main.sql来创建。 如果未指明缺省是在HR用户下运行例子。 开窗函数的的理解:
不同数据库之间使用不同版本的exp、imp传输数据的测试
缘由:前两天用9.2.0.1的exp去导出8.1.7.0数据库,得到ora-0942错误,参考了网上的多种方法后都未能解决,例如运行catexp.sql、catpatch.sql等,于是细看了一下oracle帮助中的exp、imp,做了以下测试(8i和9i):[@more@]源数据库 目标数据库 exp版本 exp成功? imp版本 imp成功?8.1.7.0 9.2.0.1 8.1.7.0 成功 8.1.7.0 成功8.1.7.0  
配置在SQL SERVER中访问ORACLE数据库的表
异构数据库(Heterogeneous Database)的使用(一)配置在SQL SERVER中访问ORACLE数据库的表版本:SQL SERVER 2000 ORACLE 9.2.0.1 FOR Windows一、配置方法一:通过oracle的sql*net客户端与Oracle数据库直接相连[@more@]1、在SQL SERVER所在服务器上安装Oracle客户端,并配置好客户端,能用sqlplus 工具连通Oracle数据库2、打开ENTERPRISE MANAGER,安全性>链接服务器,右键选择“新建链接服务器”3、“链接服务器”->ORCL (为链接服务器取名字) 选择“其它数据源”,在“提供程序名称” 栏中选择“Microsoft O