﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-落叶归根-文章分类-Oracle</title><link>http://www.blogjava.net/allan-oy/category/8659.html</link><description>一个人首先要尊重别人，然后才能得到别人的尊重；一个人首先要对自己负责，然后才有资格去对别人负责。</description><language>zh-cn</language><lastBuildDate>Fri, 29 Jun 2007 02:49:15 GMT</lastBuildDate><pubDate>Fri, 29 Jun 2007 02:49:15 GMT</pubDate><ttl>60</ttl><item><title>windows下卸载Oracle</title><link>http://www.blogjava.net/allan-oy/articles/126998.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Fri, 29 Jun 2007 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/126998.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/126998.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/126998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/126998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/126998.html</trackback:ping><description><![CDATA[1、 &nbsp; 开始－＞设置－＞控制面板－＞管理工具－＞服务 &nbsp; 停止所有Oracle服务。 &nbsp; <br>&nbsp; 2、 &nbsp; 开始－＞程序－＞Oracle &nbsp; - &nbsp; OraHome81－＞Oracle &nbsp; Installation &nbsp; Products－＞ &nbsp; Universal &nbsp; Installer &nbsp; 卸装所有Oracle产品，但Universal &nbsp; Installer本身不能被删除 &nbsp; &nbsp; <br>&nbsp; 5、 &nbsp; 运行regedit，选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE，按del键删除这个入口。 &nbsp; &nbsp; <br>&nbsp; 6、 &nbsp; 运行regedit，选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services，滚动 &nbsp; 这个列表，删除所有Oracle入口。 &nbsp; &nbsp; <br>&nbsp; 7、 &nbsp; 运行refedit， &nbsp; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application， &nbsp; 删除所有Oracle入口。 &nbsp; &nbsp; <br>&nbsp; 8、 &nbsp; 开始－＞设置－＞控制面板－＞系统－＞高级－＞环境变量 &nbsp; 删除环境变量CLASSPATH和PATH中有关Oracle的设定 &nbsp; &nbsp; <br>&nbsp; 9、 &nbsp; 从桌面上、STARTUP（启动）组、程序菜单中，删除所有有关Oracle的组和图标 &nbsp; &nbsp; <br>&nbsp; 10、 &nbsp; 删除\Program &nbsp; Files\Oracle目录 &nbsp; &nbsp; <br>&nbsp; 11、 &nbsp; 重新启动计算机，重起后才能完全删除Oracle所在目录 &nbsp; 12、 &nbsp; 删除与Oracle有关的文件，选择Oracle所在的缺省目录C:\Oracle，删除这个入 &nbsp; 口目录及所有子目录，并从Windows &nbsp; 2000目录（一般为C:\WINNT）下删除以下文 &nbsp; 件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。 &nbsp; 13、 &nbsp; WIN.INI文件中若有[ORACLE]的标记段，删除该段 &nbsp; &nbsp; <br>&nbsp; 14、 &nbsp; 如有必要，删除所有Oracle相关的ODBC的DSN &nbsp; &nbsp; <br>&nbsp; 15、 &nbsp; 到事件查看器中，删除Oracle相关的日志 &nbsp; 说明： &nbsp; 如果有个别DLL文件无法删除的情况，则不用理会，重新启动，开始新的安装， &nbsp; 安装时，选择一个新的目录，则，安装完毕并重新启动后，老的目录及文件就可以删除掉了。&nbsp;&nbsp; <br>
<img src ="http://www.blogjava.net/allan-oy/aggbug/126998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2007-06-29 10:07 <a href="http://www.blogjava.net/allan-oy/articles/126998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>表空间操作详解</title><link>http://www.blogjava.net/allan-oy/articles/126678.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Wed, 27 Jun 2007 15:14:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/126678.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/126678.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/126678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/126678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/126678.html</trackback:ping><description><![CDATA[<p><strong>表空间操作详解<br>[转载：<a href="http://www.linuxmine.com/2893.html">http://www.linuxmine.com/2893.html</a>]<br><br></strong>建立表空间</p>
<p>CREATE TABLESPACE data01<br>DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M<br>UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定，区尺寸默认为64k</p>
<p>删除表空间</p>
<p>DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;</p>
<p>一、建立表空间</p>
<p>CREATE TABLESPACE data01<br>DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M<br>UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定，区尺寸默认为64k</p>
<p>二、建立UNDO表空间</p>
<p>CREATE UNDO TABLESPACE UNDOTBS02<br>DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M</p>
<p>#注意：在OPEN状态下某些时刻只能用一个UNDO表空间，如果要用新建的表空间，必须切换到该表空间:</p>
<p>ALTER SYSTEM SET undo_tablespace=UNDOTBS02;</p>
<p>三、建立临时表空间</p>
<p>CREATE TEMPORARY TABLESPACE temp_data<br>TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M</p>
<p>四、改变表空间状态</p>
<p>1.使表空间脱机</p>
<p>ALTER TABLESPACE game OFFLINE;</p>
<p>如果是意外删除了数据文件，则必须带有RECOVER选项</p>
<p>ALTER TABLESPACE game OFFLINE FOR RECOVER;</p>
<p>2.使表空间联机</p>
<p>ALTER TABLESPACE game ONLINE;<br>3.使数据文件脱机</p>
<p>ALTER DATABASE DATAFILE 3 OFFLINE;</p>
<p>4.使数据文件联机</p>
<p>ALTER DATABASE DATAFILE 3 ONLINE;</p>
<p>5.使表空间只读</p>
<p>ALTER TABLESPACE game READ ONLY;</p>
<p>6.使表空间可读写</p>
<p>ALTER TABLESPACE game READ WRITE;</p>
<p>五、删除表空间</p>
<p>DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;</p>
<p>六、扩展表空间</p>
<p>首先查看表空间的名字和所属文件</p>
<p>select tablespace_name, file_id, file_name,<br>round(bytes/(1024*1024),0) total_space<br>from dba_data_files<br>order by tablespace_name;</p>
<p>1.增加数据文件<br>ALTER TABLESPACE game<br>ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;</p>
<p>2.手动增加数据文件尺寸<br>ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'<br>RESIZE 4000M;</p>
<p>3.设定数据文件自动扩展<br>ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf<br>AUTOEXTEND ON NEXT 100M<br>MAXSIZE 10000M;</p>
<p>设定后查看表空间信息</p>
<p>SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,<br>(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"<br>FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C<br>WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; <br></p>
<img src ="http://www.blogjava.net/allan-oy/aggbug/126678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2007-06-27 23:14 <a href="http://www.blogjava.net/allan-oy/articles/126678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 常用脚本</title><link>http://www.blogjava.net/allan-oy/articles/126673.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Wed, 27 Jun 2007 14:55:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/126673.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/126673.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/126673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/126673.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/126673.html</trackback:ping><description><![CDATA[<p><span style="FONT-SIZE: 12pt"><strong>ORACLE 常用脚本<br></strong><span style="FONT-SIZE: 10pt">文章出处：转载 作者：不详 发布时间：2006-01-06<br><br>1、查看表空间的名称及大小</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp; select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size<br>&nbsp;&nbsp;&nbsp; from dba_tablespaces t, dba_data_files d<br>&nbsp;&nbsp;&nbsp; where t.tablespace_name = d.tablespace_name<br>&nbsp;&nbsp;&nbsp; group by t.tablespace_name;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">2、查看表空间物理文件的名称及大小</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select tablespace_name, file_id, file_name,<br>&nbsp; round(bytes/(1024*1024),0) total_space<br>&nbsp; from dba_data_files<br>&nbsp; order by tablespace_name;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">3、查看回滚段名称及大小</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select segment_name, tablespace_name, r.status,<br>&nbsp; (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,<br>&nbsp; max_extents, v.curext CurExtent<br>&nbsp; From dba_rollback_segs r, v$rollstat v<br>&nbsp; Where r.segment_id = v.usn(+)<br>&nbsp; order by segment_name ;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">4、查看控制文件</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select name from v$controlfile;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">5、查看日志文件</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select member from v$logfile;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">6、查看表空间的使用情况</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select sum(bytes)/(1024*1024) as free_space,tablespace_name<br>&nbsp; from dba_free_space<br>&nbsp; group by tablespace_name;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,<br>&nbsp; (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"<br>&nbsp; FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C<br>&nbsp; WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">7、查看数据库库对象</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">8、查看数据库的版本　</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; Select version FROM Product_component_version<br>&nbsp; Where SUBSTR(PRODUCT,1,6)='Oracle';</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">9、查看数据库的创建日期和归档方式</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">&nbsp; Select Created, Log_Mode, Log_Mode From V$Database;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">10、查看当前所有对象 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; select * from tab;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">11、建一个和a表结构一样的空表 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; create table b as select * from a where 1=2; </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">12、察看数据库的大小，和空间使用情况 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; col tablespace format a20<br>SQL&gt; select b.file_id　　文件ID,<br>　　b.tablespace_name　　表空间,<br>　　b.file_name　　　　　物理文件名,<br>　　b.bytes　　　　　　　总字节数,<br>　　(b.bytes-sum(nvl(a.bytes,0)))　　　已使用,<br>　　sum(nvl(a.bytes,0))　　　　　　　　剩余,<br>　　sum(nvl(a.bytes,0))/(b.bytes)*100　剩余百分比<br>　　from dba_free_space a,dba_data_files b<br>　　where a.file_id=b.file_id<br>　　group by b.tablespace_name,b.file_name,b.file_id,b.bytes<br>　　order by b.tablespace_name<br>　　/<br>　　dba_free_space --表空间剩余空间状况<br>　　dba_data_files --数据文件空间占用情况</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">13、查看现有回滚段及其状态 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; col segment format a30<br>SQL&gt; SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">14、查看数据文件放置的路径 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; col file_name format a50<br>SQL&gt; select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">15、显示当前连接用户 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; show user</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">16、把SQL*Plus当计算器 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; select 100*20 from dual;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">17、连接字符串 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; select 列1||列2 from 表1;<br>SQL&gt; select concat(列1,列2) from 表1;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">18、查询当前日期 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">19、用户间复制数据 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; copy from user1 to user2 create table2 using select * from table1;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">20、视图中不能使用order by，但可用group by代替来达到排序目的 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; create view a as select b1,b2 from b group by b1,b2;</span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">21、通过授权的方式来创建用户 </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; grant connect,resource to test identified by test; </span></span></p>
<p><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">SQL&gt; conn test/test<br></span></span></p>
<img src ="http://www.blogjava.net/allan-oy/aggbug/126673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2007-06-27 22:55 <a href="http://www.blogjava.net/allan-oy/articles/126673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>exp/imp导出导入工具的使用 </title><link>http://www.blogjava.net/allan-oy/articles/58585.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Mon, 17 Jul 2006 07:54:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/58585.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/58585.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/58585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/58585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/58585.html</trackback:ping><description><![CDATA[
		<p align="center">
				<strong>
						<font color="#ff0000">exp/imp导出导入工具的使用 </font>
				</strong>
		</p>
		<pre>									
一. 导出工具 exp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

   exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移
   
   它有三种模式：
       a.  用户模式：	导出用户所有对象以及对象中的数据；
       b.  表模式：	导出用户所有表或者指定的表；
       c.  整个数据库：	导出数据库中所有对象。

2. 导出工具exp交互式命令行方式的使用的例子

$exp test/test123@appdb
Enter array fetch buffer size: 4096 &gt; 回车
Export file: expdat.dmp &gt; m.dmp  生成导出的文件名 
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U &gt; 3
Export table data (yes/no): yes &gt; 回车
Compress extents (yes/no): yes &gt; 回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path ...
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; cmamenu  							要导出的表名
. . exporting table                        CMAMENU       4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt;要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; 回车
Export terminated successfully without warnings. 

3. 导出工具exp非交互式命令行方式的例子

$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y 

说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp

$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\&lt;1600\" file=/directory/scott2.dmp 

说明:在exp里面加上导出emp的查询条件job='salesman' and sal&lt;1600
    
    (但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)

$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log

参数文件username.par内容
	userid=username/userpassword
	buffer=8192000
	compress=n
	grants=y

说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

     filesize指定生成的二进制备份文件的最大字节数
     
     (可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)<br /><br /><br /><br /><br />exp  userid=gpcsoft/gpcsoft123 file=D:\DataBackup\gpcsoft20061017.dmp rows=no grants=y;<br /><br />导出用户gpcsoft的所有数据，但不包含表的记录行。

二.导入工具 imp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

	imp导入工具将EXP形成的二进制系统文件导入到数据库中.
	
   它有三种模式：
       a.  用户模式：	导出用户所有对象以及对象中的数据；
       b.  表模式：	导出用户所有表或者指定的表；
       c.  整个数据库：	导出数据库中所有对象。
       
   只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入
   
   imp步骤：
   (1) create table  (2) insert data  (3) create index (4) create triggers,constraints

2.导入工具imp交互式命令行方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation.  All rights reserved.
用户名:  test
口令:****
连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
导入文件: expdat.dmp&gt; /tmp/m.dmp
输入插入缓冲区大小（最小为 8192 ) 30720&gt;
经由常规路径导出由EXPORT:V08.01.06创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no)：no&gt;
由于对象已存在, 忽略创建错误(yes/no)：no&gt; yes
导入权限(yes/no)：yes&gt;
导入表数据(yes/no)：yes&gt;
导入整个导出文件(yes/no)：no&gt; yes
. 正在将TEST的对象导入到 SCOTT
. . 正在导入表                       "CMAMENU"       4336行被导入
成功终止导入，但出现警告。 


3.导入工具imp非交互式命令行方式的例子

$ imp system/manager fromuser=jones tables=(accts) 
$ imp system/manager fromuser=scott tables=(emp,dept) 
$ imp system/manager fromuser=scott touser=joe tables=emp 
$ imp scott/tiger file = expdat.dmp full=y 
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log
$ imp system/manager parfile=params.dat 
params.dat 内容 
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp) 

4.导入工具imp可能出现的问题

(1) 数据库对象已经存在
	一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;  	
	数据库对象已经存在, 按缺省的imp参数, 则会导入失败
	如果用了参数ignore=y, 会把exp文件内的数据内容导入
		如果表有唯一关键字的约束条件, 不合条件将不被导入
		如果表没有唯一关键字的约束条件, 将引起记录重复
		
(2) 数据库对象有主外键约束
      不符合主外键约束时, 数据会导入失败	
      解决办法: 先导入主表, 再导入依存表
		disable目标导入对象的主外键约束, 导入数据后, 再enable它们
(3)  权限不够
	如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限
	
(4)  导入大表( 大于80M ) 时, 存储分配失败
      默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.
      导入时, 如果不存在连续一个大数据块, 则会导入失败.
      导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
	
(5) imp和exp使用的字符集不同
      如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
      导入完成后再改回来.

(6) imp和exp版本不能往上兼容
	imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
	根据情况我们可以用
	$ imp username/password@connect_string
 	说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
		   定义的本地或者远端数据库的名称
	注意事项:
	UNIX: /etc/hosts	          要定义本地或者远端数据库服务器的主机名
	win98:    windows\hosts             和IP地址的对应关系  
	
	win2000:  winnt\system32\drivers\etc\hosts<br />来源：[<a href="http://fengyu.china.com/exp_imp.htm">http://fengyu.china.com/exp_imp.htm</a>]<br /></pre>
<img src ="http://www.blogjava.net/allan-oy/aggbug/58585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-07-17 15:54 <a href="http://www.blogjava.net/allan-oy/articles/58585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>物化视图的快速刷新</title><link>http://www.blogjava.net/allan-oy/articles/57769.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Wed, 12 Jul 2006 03:36:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/57769.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/57769.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/57769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/57769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/57769.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 物化视图的快速刷新（一）																		物化视图有三种刷新方式：COMPLETE、FAST和FORCE。 														完全刷新（COMPLETE）会删除表中所有的记录（如果是单表刷新，可能会采用TRUNCATE的方式），然后根据物化视图中查询语句的定义重新生成物化视图。快速刷新（FAST）采用增量刷新的机制，只将自上次刷新以后对基...&nbsp;&nbsp;<a href='http://www.blogjava.net/allan-oy/articles/57769.html'>阅读全文</a><img src ="http://www.blogjava.net/allan-oy/aggbug/57769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-07-12 11:36 <a href="http://www.blogjava.net/allan-oy/articles/57769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>符合ANSI 标准的SQL连接</title><link>http://www.blogjava.net/allan-oy/articles/56549.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Tue, 04 Jul 2006 07:27:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/56549.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/56549.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/56549.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/56549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/56549.html</trackback:ping><description><![CDATA[
		<p>符合ANSI 标准的SQL连接（原自：<a href="http://www.joeco.com.cn/wj/yykf/oracle/oracle_sqllj.htm">http://www.joeco.com.cn/wj/yykf/oracle/oracle_sqllj.htm</a>）</p>
		<p>
				<br />Oracle9i中的新SQL连接简化了经常要用到的连接并加入了完全的外连接的支持。 <br />对SQL/92标准连接语法的支持是Oracle9i所提供的众多的新特性之一。这一支持使得可移植的应用程序的编写比以往更加容易，而且它还允许完全的外连接。? </p>
		<p>Oracle9i之前的连接语法<br />过去， Oracle数据库支持为SQL/86而定义的连接语法。 程序清单1 给出了这种老标准连接语法的一个例子。 <br />Oracle9i出现以前，Oracle 数据库通过使用专用语法来支持外连接。程序清单2 展示了COURSE 和ENROLLMENT之间的外连接。 </p>
		<p>请注意：表ENROLLMENT中的列名后面的WHERE子句使用了"(+)" ，其目的是使得此表成为连接中的可选表。 </p>
		<p>传统的连接语法存在一些问题。例如，给定一个复杂的查询，解析其WHERE子句以从对查询结果的其它限制条件中分隔出连接条件通常是很困难的。此外，程序员有时会漏了指定任何连接条件，这将导致一个笛卡儿乘积。 </p>
		<p>ANSI 标准连接语法<br />ANSI 标准连接语法在Oracle9i 中加入了一些新关键字和子句，它们使您能完全在一条SELECT语句的FROM子句中指定连接。让我们看一下连接表COURSE 和表ENROLLMENT 的问题。按照传统方法，第一步您通常会在查询的FROM子句中列出这两张表，如下： <br />FROM courses c, enrollment e</p>
		<p>但是，在这个新的ANSI标准语法中，你无需使用逗号；相反，你可显式地指定所需的连接类型。例如，要对COURSE 和ENROLLMENT 表进行内连接，代码是： </p>
		<p>FROM courses c <br />INNER JOIN enrollment e</p>
		<p>Jonathan Gennick在网站<a href="http://gennick.com/">http://gennick.com</a> 上提供了更多的在线Oracle 提示。 <br />指明了你所需的是一个内连接后，接下来就得指定连接的条件。这是通过在FROM 子句的ON子句部分指定连接条件实现的，而不是将连接条件与WHERE 子句其他的限制条件混杂在一起，如下例所示： </p>
		<p>SELECT c.course_name, c.period,<br />e.student_name<br />FROM course c INNER JOIN enrollment e<br />ON c.course_name = e.course_name<br />AND c.period = e.period;</p>
		<p>如果你习惯了使用老的连接语法，那么你可能要花一定的时间才能适应这个新的连接语法。但是，这是很值得的，因为新语法有不少优点： </p>
		<p>一个连接的所有信息都在同一处指定。你无需再费力地编写复杂的WHERE子句，辛苦地将连接条件从其它限制条件中分离开来。 <br />你也绝对不会"忘记"指定连接条件。 例如，一旦指定了一个内连接，Oracle9i 就会要求你使用ON子句--或其它子句--显式地指定连接条件。如果你确实需要一个笛卡儿乘积，则你就必须明示这个要求。 <br />你还可以执行完全外连接，这在以前的Oracle数据库连接语法中是不可能实现的。 <br />此外，新语法中，你不必再担心由于粗心漏掉了"(+),"符号而导致外连接转变为内连接。 <br />指定连接条件<br />到目前为止，我已使用了ON 子句来指定连接条件： <br />SELECT c.course_name, c.period,<br />e.student_name<br />FROM course c INNER JOIN enrollment e<br />ON c.course_name = e.course_name<br />AND c.period = e.period;</p>
		<p>从webstore.ansi.org 可以购买到大量的ANSI 标准的SQL 文档。 <br />ON子句允许你将任意的布尔表达式指定为一个连接条件。然而，大多数的连接都是相等连接。所谓相等连接，意即在此连接中比较两张表的相关列的相等性。因此，如果定义连接的列在两张表中的命名完全相同，那么你就可以利用简化的语法编写出高清晰度的查询。除了用ON 子句指定某个布尔连接条件外，你还可以用USING子句取代ON来指定连接列。例如，你可以将如下语句： </p>
		<p>ON c.course_name = e.course_name<br />AND c.period = e.period;</p>
		<p>代之以： </p>
		<p>USING (course_name, period);</p>
		<p>上例中的USING 子句指定当两表各自的COURSE_NAME和PERIOD列的值对应相等时，连接这两个表的行。程序清单3 给出了一个使用USING子句执行相等连接的例子。不难发现，程序清单3中的SELECT 语句非常简洁易懂。但是，USING子句对整个查询的语义会有微秒的影响。当编写带有ON子句的连接时，两张表的所有列都是可用的。因而，你可以把这两张表的COURSE_NAME 列都选择出来： </p>
		<p>SELECT C.COURSE_NAME, E.COURSE_NAME</p>
		<p>《Oracle9i SQL 参考》 包括了有关连接的信息和示例。从otn.oracle.com/docs/可以访问到此手册的在线版本。 <br />如果在USING子句中像上例那样使用列别名，你将收到一个"无效列名"的错误信息。当指定了USING子句，数据库引擎将合并这两个COURSE_NAME 列并且在结果中只识别一个这样的列。此列与任何一个被连接的表都没有关联，所以你不能用别名来限定它。这一规定是合理的，因为，按照定义，一个相等连接意味着对查询返回的每一行只存在唯一的COURSE_NAME 值。 </p>
		<p>使用USING子句可以方便简明地表达出相等联；在我看来，由此生成的查询要比使用ON的查询更容易让人理解。当然，还有另外一个捷径，即NATURAL 子句--不过，是否应该提及它，我有些犹豫，而且也不推荐你使用它。使用NATURAL 子句可以创建一个NATURAL 连接-- 一种特殊类型的相等连接，在此连接中，连接列由两表中所有命名完全相同的列组成，如程序清单4 所示。但是，我不推荐使用NATURAL 连接，我觉得这是ANSI所犯的一个错误。如果使用了一个NATURAL 连接，那么当你向一张表添加的列不经意地恰好与另一张表中的列同名时，你有可能也在不知情的情况下更改了你NATURAL 连接。 </p>
		<p>ANSI风格的外连接<br />新的ANSI 语法承认三种类型的外连接:向左外连接，向右外连接，以及完全外连接。向左和向右外连接事实上做的是相同的事-- 一张表的所有行将全被包含，再加上另一张表中所有相匹配的行。两者中唯一的区别在于它们列出表的顺序不同。以下示例的三个查询在语义上完全等价，其中第一个使用的是老的语法： <br />SELECT c.course_name, c.period,<br />e.student_name<br />FROM course c, enrollment e<br />WHERE c.course_name = e.course_name(+)<br />AND c.period = e.period(+);</p>
		<p>SELECT c.course_name, c.period,<br />e.student_name<br />FROM course c LEFT OUTER JOIN enrollment e<br />ON c.course_name = e.course_name<br />AND c.period = e.period;</p>
		<p>SELECT c.course_name, c.period,<br />e.student_name<br />FROM enrollment e RIGHT OUTER JOIN course c<br />ON c.course_name = e.course_name<br />AND c.period = e.period;</p>
		<p>完全外连接则代表了一种全新的功能，它把来自两张表的所有行都返回。行在连接列上进行可能的匹配，对于在另一张表中没有匹配值的任一行都用NULL填充空列。程序清单5 给出了两个示例，其一是Oracle9i出现以前模拟的完全外连接，另一个则是Oracle9i的完全外连接。 </p>
		<p>在程序清单5 的输出结果中，COURSE 表中课程名为Spanish I 和 U.S. History的行在表ENROLLMENT中没有相对应的行。 因此，这些行的STUDENT_NAME列为NULL.。课程名为Sky Lynn's German I 的行在COURSE 表中没有对应行。但是，请注意，此行的COURSE_NAME 和PERIOD 列却不是NULL。这些列是由USING子句指定的连接列，. 因而，当COURSE表中没有可用的行时，Oracle9i 将表ENROLLMENT 中这些列的值赋给了COURSE表中对应行的对应列。对于相等连接的情况，这样做是有意义的。 如果你倾向于将列视作NULL，可以使用ON子句来指定连接条件，如程序清单6 所示。 </p>
		<p>由于程序清单6 使用了ON子句， 因此取值Sky Lynn 的行的COURSE_NAME 和 PERIOD 列均为NULL。 </p>
		<p>多条件连接<br />你可以在查询中指定多个连接条件以连接两张以上的表。默认情况下， Oracle9i 从左至右处理连接。但是，可以使用圆括号控制连接的顺序。以下两个查询是等价的： <br />SELECT course_name, period, student_name,<br />s.grade_level<br />FROM course c INNER JOIN enrollment e<br />USING (course_name, period)<br />INNER JOIN student s USING (student_name);</p>
		<p>SELECT course_name, period, student_name, <br />s.grade_level<br />FROM (course c INNER JOIN enrollment e<br />USING (course_name, period))<br />INNER JOIN student s USING (student_name);</p>
		<p>第一个查询将 COURSE 连接到 ENROLLMENT 并将结果连接到STUDENT。第二个查询使用圆括号指定了完全相同的连接次序。<br /><br /><br /><font color="#ff00cc"><strong>例子：<br /></strong></font><br />来源：<a href="http://www.cnoug.org/viewthread.php?tid=1174&amp;highlight=%CD%E2%C1%AC%BD%D3">http://www.cnoug.org/viewthread.php?tid=1174&amp;highlight=%CD%E2%C1%AC%BD%D3</a></p>
		<p>一般的相等连接： <br />select * from a, b where a.id = b.id; <br />这个就属于内连接。 <br />  <br />对于外连接： <br />Oracle中可以使用“(+) ”来表示，9i可以使用LEFT/RIGHT/FULL OUTER JOIN  <br />  <br />LEFT OUTER JOIN：左外关联  <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />LEFT OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);  <br />等价于  <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e, departments d  <br />WHERE e.department_id=d.department_id(+)  <br />结果为：所有员工及对应部门的记录，包括没有对应部门编号department_id的员工记录。  <br />  <br />RIGHT OUTER JOIN：右外关联  <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />RIGHT OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);  <br />等价于  <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e, departments d  <br />WHERE e.department_id(+)=d.department_id  <br />结果为：所有员工及对应部门的记录，包括没有任何员工的部门记录。  <br />  <br />FULL OUTER JOIN：全外关联  <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />FULL OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);  <br />结果为：所有员工及对应部门的记录，包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。</p>
		<p>ORACLE8i是不直接支持完全外连接的语法，也就是说不能在左右两个表上同时加上(+)，下面是在ORACLE8i可以参考的完全外连接语法<br />select t1.id,t2.id from table1 t1,table t2 where t1.id=t2.id(+) <br />union <br />select t1.id,t2.id from table1 t1,table t2 where t1.id(+)=t2.id</p>
<img src ="http://www.blogjava.net/allan-oy/aggbug/56549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-07-04 15:27 <a href="http://www.blogjava.net/allan-oy/articles/56549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 和 MS SQL Server 你选谁</title><link>http://www.blogjava.net/allan-oy/articles/36680.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Tue, 21 Mar 2006 12:03:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/36680.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/36680.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/36680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/36680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/36680.html</trackback:ping><description><![CDATA[
		<strong>Oracle 和 MS SQL Server 你选谁</strong>
		<br />
		<div class="ItemContent">
				<p>        微软（中国）有限公司宣布：2001年3月，Microsoft SQL Server 2000在美国连续获得三项大奖，高可扩展数据仓库、商业智能功能深获肯定；2001年4月，微软SQL Server 2000 企业版和Windows 2000 Datacenter Server 在新近的包括TPC-C在内的系列工业测试中显示了其强大的可扩展性，再度有力地对传统昂贵的企业系统供应商提出挑战。2001年5月，据美国著名的市场调查公司Gartner公司称，在Windows NT数据库软件市场中，世界上最大的软件制造商——微软公司已经超越Oracle公司，坐上了头把交椅，在总值88亿美元的数据库市场中，微软公司已在数据库市场中与Oracle并驾齐驱。</p>
				<p>2001年9月，Oracle公司推出了自己的新款Oracle软件——Oracle9i，并在其“Think fast,think simple,think smart”的响亮口号中开始了Oracle9i的宣传，数据库市场的领头羊——Oracle公司又开始了捍卫霸主地位的努力。至此，数据库市场又开始了新一轮的群雄逐鹿的大战。不管是Oracle公司，还是微软公司都是世界数一数二的大公司，Oracle软件和Microsoft SQL Server软件也都是由世界级开发团队所开发，两个公司都声称自己的软件是最好的，那么，两个软件到底谁优谁劣呢？</p>
				<h4>1、简要回顾</h4>
				<p>Oracle公司创立于1977年，其初衷是建立一个数据库管理系统，而如今，Oracle公司已经开发了许多优秀的应用程序和服务程序，远远超越了其初衷。在2000年的财政收入中，仅关系数据库管理系统许可证销售一项，Oracle公司就获得了超过10亿美元的收入，Oracle公司在全世界的员工已经超过了41000名，成为了世界第二大软件公司。</p>
				<p>Microsoft公司无人不晓，其发展过程可概括为“以桌面操作系统为起步，接着大踏步进军服务器软件，现在又全力迈向因特网软件的开发”。1987年进入数据库领域，如今，其产品Microsoft SQL Server所占的市场份额已经仅次于Oracle，居世界第二。在2000年的财政年度里，Microsoft公司获得了超过22亿美元的收入，雇员超过了32000名，是世界软件业的领头羊。</p>
				<h4>2、Oracle 8i与Microsoft SQL Sever2000简介</h4>
				<p>提起数据库，第一个想到的公司，一般都会是Oracle。该公司成立于1977年，最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。1984年，首先将关系数据库转到了桌面计算机上。然后，Oracle的下一个版本，版本5，率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle的版本6首创行锁定模式以及对称多处理计算机的支持…… Oracle8主要增加了对象技术，成为关系-对象数据库系统, Oracle8i增加了internet功能。目前，ORACLE产品覆盖了大、中、小型机等几十种机型，Oracle数据库成为世界上使用最广泛的关系数据系统之一。</p>
				<p>作为一个通用的数据库系统，Oracle具有完整的数据库功能，这些功能包括存储大量数据、定义和操作并发控制、安全性控制、完整性控制、故障恢复与高级语言接口等。Oracle还是一个分布式数据库系统，支持各种分布式功能，特别是支持Internet处理。作为一个应用开发环境，Oracle提供了一套界面友好、功能齐全的数据库开发工具，使用户拥有一个良好的应用开发环境。Oracle使用PL/SQL语言提供各种操作具有可开放性、可以执行、可伸缩性等功能。特别是Oracle 8i以上版本中，支持面向对象的功能，如支持类、方法、属性等，使得Oracle产品称为了一种对象/关系数据库系统。</p>
				<p>Microsoft SQL Server脱胎与Sybase SQL Server。1988年，Sybase公司、Microsoft公司和Asbton-Tate公司联合开发的OS/2系统上的SQL Server问世了。后来，Asbton-Tate公司推出了SQL Server的开发，而Microsoft公司和Sybase公司签署了一项共同开发协议。到1992年，将SQL Server移植到Windows NT平台上。之后，Microsoft公司和Sybase公司取消合同，各自开发自己的SQL Server。Microsoft公司致力于Windows NT平台的SQL Server开发，而Sybase公司则致力于UNIX平台的开发。1996年，Microsoft公司推出了SQL Server 6.5版本。1998年又推出了SQL Server 7.0，2000年8月推出了SQL Server 2000，其中包括企业版、标准版、开发版、个人版四个版本。</p>
				<p>Microsoft SQL Sever2000是一种典型的具有客户机/服务器体系架构的关系数据库管理系统，它使用Transact-SQL语句在服务器和客户机之间传送请求和回应。Microsoft SQL Sever具有可靠性、可伸缩性、可管理性、可用性等特点，为用户提供了完整的数据库解决方案。</p>
				<p>Microsoft SQL Sever2000的服务器环境可以是Windows 2000、Windows NT或者Windows 9，其客户机环境可以是Windows 2000、Windows NT、Windows 9x、Windows 3.x、MS-DOS、第三方平台和Internet浏览器等。另外，Microsoft SQL Sever2000可以很好的与Microsoft Backoffice产品集成。</p>
				<h4>3、产品特性比较 </h4>
				<p>
						<strong>⑴ 数据库操作平台的开放性</strong>
						<br />Oracle能在所有主要的平台（其中包括Windows）上运行，并且完全支持所有的工业标准，所以，客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略，它使得客户可以选择一种最适合他们特定需要的解决方案。SQL Server只在Windows上运行，Microsoft这种专有策略的目标是将客户锁定到Windows环境中， 这样做可以说是一把双刃剑，既有利于有不利于SQL Server的发展及其市场份额。由于SQL Server紧密的捆绑在Windows平台上，所以，只有随着Windows操作系统可靠性、开放性以及性能的改善，SQL Server的开放性和可靠性才能进一步提高。</p>
				<p>
						<strong> ⑵ 性能价格比</strong>
						<br />人们选择数据库产品，当然首先要考虑数据库产品的性能，同时也关心究竟要花多少钱才能建立并运行一套Oracle或SQL Server数据库系统。这些钱不仅包含最初购置软件、硬件的费用，还包含了维护、培训费用。两家公司都宣称自己的性能价格比好，实际上，Oracle公司侧重于产品的可靠性和实用性方面，而Microsoft公司更侧重于产品价格方面。由于操作系统的原因，普遍认为SQL Server的可靠性较差，而另一方面Oracle的初始花费则相对较高，尤其是在考虑工具软件的因素时，与SQL Server免费提供工具软件相比，Oracle更显价格不菲。所以，在考虑该使用什么软件时，要根据自己的业务需求和基础设施来综合考虑。</p>
				<p>
						<strong>⑶ 工具软件</strong>
						<br />使数据库易于安装、使用和管理——组合在一起称为“操作简单”——是一个减少成本的关键因素。Microsoft产品具有易于使用的美誉，在很多方面也确实如此，SQL Server就得益于让人感到使用起来比较容易。SQL Server企业管理器（Enterprise Manager）是SQL Server软件的一个组成部分，给用户提供了一个集成的管理控制台来集中管理多个服务器。Oracle也由自己的企业管理器，它的性能随着版本的提高有所改善，有些方面甚至超过了SQL Server企业管理器，但它安装较为困难，有些较好的组件还需另外购买。SQL Server与Windows操作系统无缝集成， Microsoft公司总是尽可能将所有的软件功能捆扎在一起，除非用户还需要其他用处的操作软件包，否则功能已足够使用了。而Oracle公司将工具软件交给第三方软件商来开发，花费高，尤其在别人的软件免费提供的情况下，这种问题就更显突出。</p>
				<p>
						<strong>⑷ 数据库性能</strong>
						<br />那种数据库更快？这其实是一个很难回答的问题，因为存在许多不定因素，包括处理类型、数据分布以及硬件基础设施等。2002年2月，Microsoft公司宣称SQL Server 2000 Bata2版在Windows2000操作系统上运行速度达到227079个事务每分钟最高纪录。Oracle公司提出质疑后，Microsoft公司收回了测试结果，并于10月份给出了更高的测试结果，几乎是以前的两倍。这种测试在很多方面是有用的，但却并不能说明每个用户应用程序的操作性能。一些经验表明在长时间运行大量事务方面Oracle数据库要优于SQL Server，但在集群技术等方面，SQL Server比Oracle数据库要好一些。</p>
				<h4>4、展望Oracle和SQL Server</h4>
				<p>Oracle9i已经出炉，它增强了针对电子商务的新特性，增强了对因特网应用的支持，提供了对大数据量的在线事务处理（OLTP）环境、查询密集型数据仓库以及要求苛刻的互联网应用的高效、可靠及安全的数据管理能力。 <br />SQL Server 2000的下一代产品YuKon预计在今年推出。YuKon主要增强的特性大概是集群，每个服务器自己进行数据处理、管理内存、加锁和事务处理，与此同时保持与集群中其他及其的内部联系，能做到集群中一台机器不能工作，不会影响整个系统的工作。</p>
				<p>总之，两家公司为了在竞争中占得先机，会不断的开发出更好功能更完善的数据库管理系统。Oracle公司的优势在于许多公司都已投资于相关硬件产品与软件产品的开发，Microsoft公司本身就是一座大山。到底那家公司会在激烈的竞争中取胜，让我们拭目以待，不管谁胜谁负，受益的永远是用户。<br /><br />来源：<a href="http://www.playes.net/Blog/10.asp">http://www.playes.net/Blog/10.asp</a></p>
		</div>
<img src ="http://www.blogjava.net/allan-oy/aggbug/36680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-03-21 20:03 <a href="http://www.blogjava.net/allan-oy/articles/36680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用某Windows优化大师对Windows2000操作系统进行了优化，优化完成之后，oracle数据库便无法正常工作</title><link>http://www.blogjava.net/allan-oy/articles/36215.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Mon, 20 Mar 2006 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/36215.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/36215.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/36215.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/36215.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/36215.html</trackback:ping><description><![CDATA[
		<p>
				<font face="verdana, arial, helvetica" size="2">
						<span class="javascript" id="text3131287" style="FONT-SIZE: 12px">现象：使用某Windows优化大师对Windows2000操作系统进行了优化，优化完成之后，oracle数据库便无法正常工作。Oracle监听服务不能启动，提示为“无法找到文件路径”，打开监听服务的“属性”，“常规”页中的“可执行文件的路径”项为空。<br />分析：数据库服务能够正常启动，说明数据库没有问题，文件系统正常。因为监听服务的“可执行文件的路径”项被清空，导致监听服务无法启动，所以不能连接数据库。<br />解决办法：<br />1. 停掉所有ORACLE服务，设为手动。进入oracle网络管理工具“Net8 Configration Assistant”或“Net8 Assistant”，重新配置一个监听服务，名为“Listener1”。<br />2. 进入“命令提示符”，运行“监听控制程序——LSNRCTL”，再运行“start listener1”，首次启动Listener1监听程序，为Listener1在操作系统服务里生成相关服务项。为了后面的修改操作能够生效，再运行“stop listener1”停止Listener1。<br />3. 将服务中原Listener服务的“启动类型”改为“已禁用”，将已生成的Listener1服务的“启动类型”改为“自动”。<br />4. 用“记事本”打开监听服务配置文件“ORACLE_HOME \ network \ admin \ listener.ora”，将“LISTENER =”、“SID_LIST_LISTENER =”分别改为“LISTENER1 =”、“SID_LIST_LISTENER1 =”，并删除当前的“LISTENER1 =”、“SID_LIST_LISTENER1 =”项。该操作的作用为：不用费力为Listener1监听服务再配置常规参数、数据库监听等，直接采用原Listener服务的配置。<br />5. 再启动Listener1监听服务，可以连接到数据库。<br />其它可用处理方法：<br />进入操作系统的“regedit”（注册表编辑器），查找Listener监听服务项，逐一为该项添加或修改可执行文件路径值。<br />但是该方法处理过程复杂，而且容易出错，不及上面的方法简单、稳妥，建议除非在工作之余进行练习操作，在实际用户服务过程中，能采用第一种方法者，不要采用第二种方法。</span>
						<br />
						<br />
						<font face="Times New Roman" size="3">来源：<a href="http://www.itpub.net/434679,2.html">http://www.itpub.net/434679,2.html</a></font>
				</font>
		</p>
<img src ="http://www.blogjava.net/allan-oy/aggbug/36215.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-03-20 10:14 <a href="http://www.blogjava.net/allan-oy/articles/36215.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Oracle数据库的启动和停止</title><link>http://www.blogjava.net/allan-oy/articles/36191.html</link><dc:creator>落叶归根</dc:creator><author>落叶归根</author><pubDate>Mon, 20 Mar 2006 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/allan-oy/articles/36191.html</guid><wfw:comment>http://www.blogjava.net/allan-oy/comments/36191.html</wfw:comment><comments>http://www.blogjava.net/allan-oy/articles/36191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/allan-oy/comments/commentRss/36191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allan-oy/services/trackbacks/36191.html</trackback:ping><description><![CDATA[Oracle9I开始，取消了服务器管理器（svrmgl）和internal用户，数据库的启动和停止都是通过sql*plus来完成！Oracle10g可以通过浏览器来启动和停止数据库服务！这里主要说说9I下的启动和停止服务，下面的命令在8i下也可以使用 <br />要启动或者停止服务，必须拥有sysdba的权限。可以使用两中方式连接 <br />第一种，以sys用户连接 <br />c:\&gt;;sqlplus sys/change_on_install as sysdba; <br />进入sql*plus环境；（注意，ORACLE9I在安装的时候需要你自己设定sys和system的口令，并且不能才用ORACLE9I以前这两个用户的默认口令，这主要是为了保证数据库系统的安全，我为了好记忆，在安装完成后立刻恢复了默认的口令） <br />第二种： <br />C:\&gt;;sqlplus /nolog <br /><br />SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004 <br /><br />Copyright (c) 1982, 2002&gt;&gt;, Oracle Corporation.  All rights reserved. <br /><br />SQL&gt;; connect /as sysdba <br />已连接。 <br />SQL&gt;; <br />在进入后就可以进行下面的操作了！ <br /><b>先说关闭数据库</b><br />shutdown有四个参数，四个参数的含义如下： <br />Normal 需要等待所有的用户断开连接 <br />Immediate 等待用户完成当前的语句 <br />Transactional 等待用户完成当前的事务 <br />Abort 不做任何等待，直接关闭数据库 <br />normal需要在所有连接用户断开后才执行关闭数据库任务，所以有的时候看起来好象命令没有运行一样！在执行这个命令后不允许新的连接 <br />immediate在用户执行完正在执行的语句后就断开用户连接，并不允许新用户连接。 <br />transactional 在拥护执行完当前事物后断开连接，并不允许新的用户连接数据库。 <br />abort 执行强行断开连接并直接关闭数据库。 <br />前三种方式不回丢失用户数据。第四种在不的已的情况下，不建议采用！ <br /><b>数据库的启动</b><br />数据库启动使用startup命令，它有三种情况 <br />第一种：不带参数，启动数据库实例并打开数据库，以便用户使用数据库，在多数情况下，使用这种方式！ <br />第二种：带nomount参数，只启动数据库实例，但不打开数据库，在你希望创建一个新的数据库时使用，或者在你需要这样的时候使用！ <br />第三种：带mount参数，在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了！ <br />谢谢！不准确的地方请指教！<br /><br />来源：<a href="http://www.chinaunix.net/jh/19/312844.html">http://www.chinaunix.net/jh/19/312844.html</a><img src ="http://www.blogjava.net/allan-oy/aggbug/36191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allan-oy/" target="_blank">落叶归根</a> 2006-03-20 09:39 <a href="http://www.blogjava.net/allan-oy/articles/36191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>