中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
Oracle常见问答
作者:佚名 时间:2004-07-11 10:40 出处:互连网 责编:chinaitpower
              摘要:Oracle常见问答

  1、如何使用SQL*Loader?
  
  dragon2> sqlldr userid=c/c control=lc2.ctl log=lc2.log bad=lc2.bad
  
  SQL*Loader: Release 9.2.0.1.0 - Production on Wed Jun 4 18:03:53 2003
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  Commit point reached - logical record count 50
  
  dragon2>
  
  其中lc2.ctl内容为:
  
  #--------------------------------------------
   LOAD DATA
   INFILE *
   REPLACE
   INTO TABLE lc2
   FIELDS TERMINATED BY ","
   (LCSH,LCZT,LCRQ,LCSJ,LCGH)
   BEGINDATA
   673969,1,20010205,174948,0000
   673969,3,20010205,174709,0000
   ...
   #--------------------------------------------
  
  2、如何知道安装了哪些Oracle选项?
  
  col PARAMETER for a35
  
  col VALUE for a35
  
  select * from v$option;
  
  [06.04]:如何增加表空间的大小?
  
  (1)、加大表空间中数据文件的大小:
  
  ALTER DATABASE DATAFILE 'filename' RESIZE nn M;
  
  (2)、给表空间添加新的数据文件:
  
  ALTER TABLESPACE tablespacename
  
  ADD DATAFILE 'filename' SIZE nn M;
  
  如果你没有使用OMF,filename需要包含详细路径。
  
  3、如何类似创建一个空表?
  
  CREATE TABLE NEW_TABLE_NAME AS
  
  SELECT * FROM OLD_TABLE_NAME WHERE 1=2;
  
  [06.02]:9i exp blob ORA-01555错误?
  
  导致9i exp blob时出现
  
  ORA-01555: snapshot too old: rollback segment number with name "" too small
  
  错误的原因是9i blob的bug。
  
  一般来说exp ORA-01555可以通过下面方法来解决:
  
  1)加大所有回滚段且不允许自动收缩(因为我们无法控制EXP具体会使用哪个回滚段);
  
  2)EXP使用consistent = n(只保证一个表内数据是同一时刻的)和direct = y参数;
  
  3)安排在数据库任务最少的时候做EXP;
  
  4)对于特大表可采用query子句分批EXP该表。
  
  [05.30]:ORA-02049 via db_link?
  
  hawk1:/oracle/oracle9$oerr ora 2049
  
  02049, 00000, "timeout: distributed transaction waiting for lock"
  
  // *Cause: exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock.
  
  // *Action: treat as a deadlock
  
  很多时候DISTRIBUTED_LOCK_TIMEOUT参数是不设的,这个错误很多时候是程序引起的。当然有人建议使用DBMS_DEFFR.CALL和DBMS_DEFFR_SYS.PUSH来代替直接的两段式提交。
  
  4、为何导致连接关闭?
  
  昨天在做一项测试时,我在本地PC设置了NLS_DATE_FORMAT,但手误写错了,把hh24写成了24hh,当时因为SQL*PLUS有现成的连接在数据库上,所以也没发现有什么影响。此后重起PC后无论如何都连不上数据库了,每次SQL*PLUS都是一闪而过就消失了,我根本看不到它提示的是什么错误,弄的我一头雾水,查遍了我可以想到的原因就是没发现问题所在,后来尝试tnsping(因为我一直确信网络没有问题)告知日期格式错误,才猛然想起。
  
  5、817 EXP 815报错EXP-00037?
  
  直接使用817的EXP来导出815的数据会报EXP-00037错误。我们可以先使用815 EXP,然后使用817 IMP即可。
  
  6、网上下载的oracle9i是正式版吗?如果是这样,oracle通过什么赚钱?
  
  http://otn.oracle.com/software/content.html 上下载的是正版的,oracle赚钱的方式分两种:
  
  1)、卖软件,下载的虽然和正版没有区别,但他有申明,不得用于商业用途,你如果用下载的软件来做商业用途,oracle保留告你侵权的权利。所以一般下载的都只是作为测试,或用户个人学习,真正的商业应用,肯定是会买的。
  
  2)、卖服务,这个才是oracle最赚钱的来源,用的起oracle的公司一般都会考虑买服务的,因为很多问题也只有oracle才能给你解决,再牛的oracle技术高手,没有oracle这个后台,都很难完成工作的。
  
  7、如何取得一列中第N大的值?
  
  select * from
  
  (select t.*,dense_rank() over (order by t2 desc) rank from t)
  
  where rank = &N;
  
  
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有