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);