<%@ page contentType="text/html; charset=gb2312"%> oracle数据库开发的一些经验积累(四)
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
oracle数据库开发的一些经验积累(四)
     发布者: 发布时间:2006-05-07

61、ora-12571: tns:packet writer failure(包写入程序失败)

   (1) 这个错误在客户端遇到过,通常重新连接一下服务器就好了。
   服务器重新启动的时候,在client也会遇到该错误。
   这个错误你是在server还是client上遇到的?最常用的办法就是加上跟踪,查看一下    跟踪记录,分析分析错误的原因。
   网络问题也会出现该错误,比如网络路由没有配置好。
   (2) 安装的杀毒软件导致的
   (3) 服务器端的ip是否被改动
   (4) 最后不行的话,重新创建监听器
   
62、oracle服务不能自动启动的解决办法  

   把oraclehome\network\admin\sqlnet.ora
   文件中的 sqlnet.authentication_service=(nts)
   注释掉就可以了


63、不完全的时间点恢复

shutdown immediate
copy 备份文件到需要恢复的目录下
startup mount
recover database until time ''2002-12-26 09:00:00''

alter database open resetlogs

自己仔细检查一下,不会发生这样的问题的。

64、oracle如何设置查询超时

select  /*+  timeout  30*/  *  from  verylargetable 

65、修改字符集

(1)、alter databae character set simplified chinese_china.zhs16gbk ;

(2)、update props$ set value$=''zhs16cgb231280''
where name=''nls_characterset'';
update props$ set value$=''zhs16cgb231280''
where  name=''nls_nchar_characterset'';

建议不使用(2)

注意:
(1)、执行alter database character set必须有sysdba权限,并且在startup restrict模式下执行
(2)、原字符集必须是目标字符集的一个真子集(就是浪子所说的只能从we8iso8859p1转到zhs16gbk的原因)
(3)、clob字段装换可能有问题,建议在转换以前把有clob字段的表导出后drop,转换以后再导回
(4)、该转换不可逆,所以在做这个操作以前建议做数据库全备份

66、修改数据库名字

(1)、启动svrmgrl,以文本方式备份控制文件
 oracle>svrmgrl
 svrmgrl>connect internal
 svrmgrl>alter system backup controlfile to trace
(2)、编辑产生的跟踪文件,在udump目录下
 改create controlfile reuse database "ctc" noresetlogs archivelog
 中的reuse为set
 然后把create controlfile这段语句拷出
(3)、正常宕库,后启动到nomount下
 svrmgrl>shutdown immediate
 svrmgrl>startup nomount
(4)、执行create controlfile那段语句
(5)、打开数据库
 svrmgrl>alter database open
 如提示用resetlogs选项则使用
  svrmgrl>alter database open resetlogs
(8)、相应修改初始化参数

 

67、rownum的用法

   select * from (select t.*,rownum id from dept t)
   where id between 1 and 20


68、oracle的内部参数

   select a.ksppinm name,
       b.ksppstdf default_val,
       a.ksppdesc description
  from x$ksppi a,
       x$ksppcv b
 where a.indx=b.indx
   and substr(a.ksppinm,1,1)=''_''
 order by a.ksppinm

69、9i安装时报areasqueries错误的解决办法
    包括ias 和 ids
   
    把安装源文件目录全部改为英文字母或数字
    注意:不能是中文的路径

70、我如何知道一个表空间还有多少可以用

(1)、
select upper(f.tablespace_name) 表空间名,
       d.tot_grootte_mb "表空间大小(m)",
       d.tot_grootte_mb - f.total_bytes "已使用空间(m)",
       round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,2) "使用比",
       f.total_bytes "空闲空间(m)",
       f.max_bytes "最大块(m)"
 from     
    (select tablespace_name,
            round(sum(bytes)/(1024*1024),2) total_bytes,
            round(max(bytes)/(1024*1024),2) max_bytes
      from sys.dba_free_space
     group by tablespace_name) f,
    (select dd.tablespace_name, round(sum(dd.bytes)/(1024*1024),2) tot_grootte_mb
      from   sys.dba_data_files dd
      group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name   
order by 4 desc
(2)、select tablespace_name,round(sum(bytes)/1024/1024,2) "m" from dba_free_space
group by tablespace_name

71、creck pl/sql developer 的方法

(1)、安装pl/sql developer
(2)、用ultraedit将程序plsqldev.exe打开
(3)、将ultraedit设置为16进制模式
(4)、查找串:ba 1e 00 00 00 2b d0
   修改:2b d0  为:4a 90
(5)、存盘退出
(6)、运行plsqldev.exe,如果提示你还有29天的时间可用,那就恭喜你了!

72、使索引无效

alter index idx unusable;
alter index idx_acctno disable;(only to a function based index)

73、在sqlplus中给指定用户进行 set autotrace on/off
   
    以scott用户为例:

    sql>connect scott/tiger
   
    connected.
   
    sql>@$oracle_home/rdbms/admin/utlxplan.sql
   
    table created.
   
    sql>connect / as sysdba
   
    connected.
   
    sql>@$oracle_home/sqlplus/admin/plustrce.sql
   
    drop role plustrace;
    role dropped.
    create role plustrace;
    role created.
    .
    grant plustrace to dba with admin option;
    grant succeeded.

    sql>grant plustrace to scott;

    grant succeeded.

    sql>connect scott/tiger

    connected.       

    sql>set autotrace on

    sql>

74、关于约束的四种状态

disabled novalidate:当约束使不能时,约束的规则不能强制在列
       (包含在约束中)的数据之上。但约束的定义保存在数据字典中。
       在执行数据仓库卷起(rollup)或装载且要加快装载过程时该方式
       是有用的。
enabled novalidate:是能无效,该状态的表可以包含非法
      的数据,但不可能加入新的非法数据。
enabled validate:使能有效,一个使能的约束是强制的,表的数据检查
      有效

75、在sqlplus中调用存储过程

set serveroutput on
declare
 out_param varchar2(100);
begin
 your_proc(1,out_param);
 dbms_output.put_line(out_param);
end;
/
set serveroutput off

75、生成系统表和存储过程的三个文件。

     cat*.sql
     dbms*.sql
     utl*.sql

76、job中日期的使用

每个月1号:
last_day(sysdate)+1
每个季度的第一天:
to_date(decode(to_char(sysdate,''q''),''1'',to_char(sysdate,''yyyy'')||''0101'',
    ''2'',to_char(sysdate,''yyyy'')||''0401'',''3'',to_char(sysdate,''yyyy'')||''0701'',
    ''4'',to_char(sysdate,''yyyy'')||''1001''),''yyyymmdd'')
每天:
sysdate+1
每个星期几:
decode(to_char(sysdate,''w''),''1'',sysdate+7,
to_char(sysdate,''w''),''2'',sysdate+6,to_char(sysdate,''w''),''3'',sysdate+5,
to_char(sysdate,''w''),''4'',sysdate+4,to_char(sysdate,''w''),''5'',sysdate+3,
to_char(sysdate,''w''),''6'',sysdate+2,to_char(sysdate,''w''),''7'',sysdate+1)

每个星期x下午三点:interval(21, ''next_day(trunc(sysdate),x+1)+15/24'');

每个季度的第一个星期x:
interval(21, ''next_day(trunc(sysdate,''''q''''),3),5)'');


77、使用execute immediate 的问题

8i以上才支持execute immediate
8.05只能用dbms_sql 
最好使用execute immediate


78、oracle9i中删除表空间中数据文件的方法
 
drop tablespace tbsname including contents

79、找出串中的数字

select translate(''2krw229'',
   ''0123456789abcdefghijklmnopqrstuvwxyz'',''0123456789'')
   "translate example"
     from dual
/

2229

--全是数字的:
select * from 你的表 where translate(你的列,''0123456789'','' '')='''';

select * from 你的表 where trim(ltrim(rtrim(replace(col_name,''0123456789'','' '')))) is null

 

80、分析表
analyze table mzbs.db_code estimate statistics sample 20 percent;


81、表空间管理和用户管理

--查看表空间和数据文件

select file_name,tablespace_name,autoextensible from dba_data_files;

--数据表空间

create tablespace user_data
    logging
    datafile ''d:\oracle\oradata\orcl\test.dbf'' size 50m reuse ,
             ''c:\users01112.dbf'' size 50m reuse 
    autoextend
    on next  1280k maxsize  16383m extent management local

--临时表空间

create temporary
    tablespace  user_data_temp tempfile ''d:\temp0111.dbf''
    size 50m reuse autoextend
    on next  1024k maxsize  16383m extent management local uniform
    size 1024k


--增加数据文件

alter tablespace  user_data
  add datafile ''c:\users01113.dbf'' size 50m;

alter tablespace user_data
  add datafile ''c:\users01114.dbf''  size 50m
  autoextend on
;


--删除表空间

drop tablespace user_data including contents;


--修改数据文件大小
 alter database
 datafile ''c:\users01113.dbf'' resize 40m;

--创建用户、赋予权限

create user user_data profile default identified by  user_data
    default
    tablespace user_data  temporary
    tablespace user_data  account unlock;
 
grant connect to user_data;
grant resource to user_data;

--把表移到另一个表空间
alter table tablename move tablespace tablespacename;

--创建索引

create index indexname on tablename(columnname);

create index indexname on tablename(columnname) tablespace tablespacename;

--重新建立索引

alter index indexname rebuild tablespace  tablespace;


--创建表

creae table tablename
(column1 colutype default(value) not null)
(column2 colutype default(value) not null);


--建表的索引存储分配


create table summit.employee(id number(7) constraint employee_id_pk primary key deferrable using index  storage(initial 100k next 100k)
tablespace indx,
last_name varchar2(25) constraint employee_last_name_nn not null,
dept_id number(7))
tablespace data;


--建立主键

alter table tablename
add constraint constraintname primary key(column1,column2)


--使约束无效

alter table tablename enable novalidate constraint constraname;

alter table tablename enable validate constraint constraname;

--删除约束

alter table tablename  drop constraint constraintname;

drop table tablenaem cascade constraints;(删除表后将所用的外键删除)

--给表增加列

alter table tablename
add column colutype default(value) not null;

--给列增加缺省值

alter table tablename
modify columnname  default(value) not null;


--给表增加外键
 alter table  tablename
 add constraint  constraintname
 foreign key(column) references table1name(column1);

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
oracle数据库开发的一些经验积累(五)
oracle数据库开发的一些经验积累(六)
oracle常用命令大汇总(一)
oracle常用命令大汇总(二)
oracle常用命令大汇总(三)
oracle常用命令大汇总(四)
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(1030)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(9755)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(7058)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(8249)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号