LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1259|回复: 0

oracle用法一些技巧

[复制链接]
发表于 2006-12-20 17:32:33 | 显示全部楼层 |阅读模式
要删除所有用户的所有表,用head.txt ,反复执行几次就行了,执行方式是
sqlplus system/manager <head.txt >lp.txt
其中tabtype表示table  或  view
select username from v$session;查看当前的连接用户
再杀掉连接用户
select sid,serial#,username from v$session where username='TEST';
alter system kill session '24,12794';
其中sid为24,12794为序列号.
再删除用户
drop user TEST cascade;
select count(*) from v$process;查看连接数
检查服务器上Oracle数据库的字符集
SQL> conn sys/change_on_install
SQL> desc props$
列名                          可空值否   类型
------------------------------- -------- ----
NAME                            NOT NULL VARCHAR2(30)
VALUE$                                   VARCHAR2(2000)
COMMENT$                                 VARCHAR2(2000)
SQL> col value$ format a40
SQL> select name,value$ from props$;
NAME                           VALUE$
------------------------------ -------------------------
DICT.BASE                      2
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_DATE_FORMAT                DD-MON-YY
NLS_DATE_LANGUAGE              AMERICAN
NLS_CHARACTERSET               ZHS16GBK
NLS_SORT                       BINARY
NLS_CALENDAR                   GREGORIAN
NLS_RDBMS_VERSION              7.3.4.0.0
GLOBAL_DB_NAME                 ORACLE.WORLD
EXPORT_VIEWS_VERSION           3
查询到14记录.
NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。
SQL*Plus中修改方法:
SQL> update props$ set value$='新字符集' where name='NLS_CHARACTERSET';
操作系统中修改方法:
connect internal
alter database ORCL character set ZHS16GBK;
alter database ORCL national character set ZHS16GBK;
2、检查操作系统级Oracle汉字显示的字符集
运行regedit,定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
找到以下字符串
NLS_LANG
检查是否以下内容,如不是,改之
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

查游标使用数量sql语句
在PL/SQL工具中执行
select a.sid,a.serial#,a.username,a.osuser,a.process,a.machine,a.terminal,a.program,b.f2 数量,c.sql_text 语句
from v$session a,(select sid,count(1) f2 from v$open_cursor group by sid) b,
(select sql_text,address from v$sql) c where a.sid=b.sid and a.sql_address=c.address order by b.f2
如果在创建存贮过程中出现错误,用命令show errors
然后就可以看出在第几行第几列出现错误,比较好调试
--查看数据文件及其所在表空间、大小、状态
col file_name format a40
col tablespace_name format a20
select file_name,file_id,tablespace_name,bytes,status from dba_data_files;

在ORACLE中init.ora中
Open Cursor可以=500,1000或几千,看具体的运用,可以设置为比较大的数字
取消规档模式。
1.shutdown  
2.startup mount
3.alter database noarchivelog
4.alter database open
查看现在的规档模式   select * from v$database
查看表空间与删除表空间
svrmgrl          connect internal/oracle     select * from DBA_TABLESPACES
删除 svrmgrl       startup mount         
alter database datafile '/data//TEST.dbf' offline drop
alter database open
drop tablespace 表空间名 including contents
如果BDE中的ORACLE配置为SQLORA8.DLL的话,则对应一条SQL语句有4个结果
产生,即如果只有一条记录,但返回的记录为4条
所以必须配置为SQLORA32.DLL(好像是必须配置为OCI.DLL)
--查看当前被锁定的对象,多次执行此脚本进行比较可发现死锁的情况
column OBJECT_NAME format a20
column USERNAME format a15
column osuser format a15
select b.OBJECT_NAME,a.SESSION_ID,s.SERIAL#,s.USERNAME,s.osuser,s.process from  v$locked_object a,v$session s,dba_objects b
where a.session_id=s.sid and a.object_id=b.object_id order by object_name;
赋权限grant select on test(表名) to 用户
拷贝表到新建那个表create table 表名 as select * from cc_phoneareadetail
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表