ORACLE数据库使用的常见问题(一)

1. oracle安装完成后的初始口令?
 internal/oracle
 sys/change_on_install
 system/manager
 scott/tiger
 sysman/oem_temp

2. 如何分辨某个用户是从哪台机器登陆ORACLE的?
Select machine ,terminal FROM V$SESSION;

3. 用什么语句查询字段呢?
desc table_name 可以查询表的结构
select ?field_name,… from … 可以查询字段的值
select * from all_tables where table_name like ‘%’ 查询表名称
select * from all_tab_columns where table_name=’?’ 查询字段名称

4. 怎样得到触发器、过程、函数的创建脚本?
desc user_source? user_triggers,或者菜单内选择修改对象

5. 怎样计算一个表占用的空间的大小?
select owner,table_name,NUM_ROWS,BLOCKS*AAA/1024/1024 “Size M”,EMPTY_BLOCKS,LAST_ANALYZED
from dba_tables where table_name=’XXX’;
这里AAA 是db_block_size这个变量的值,XXX要查询的表名

6. 如何查看最大会话数?
Select * FROM V$PARAMETER Where NAME LIKE ‘proc%’;
或者
SQL> show parameter processes
NAME TYPE VALUE
———————————— ——- ——————————
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 4
log_archive_max_processes integer 1
processes integer 200
这里为200个用户。

7. 如何查看系统被锁的事务时间?
select * from v$locked_object;

8. 如何以archivelog的方式运行oracle?
修改配置文件init.ora
log_archive_start = true
重新启动数据库,或者参见如何查看、启动或关闭oracle数据库的归档模式

9. 怎么获取有哪些用户在使用数据库?
select username from v$session;

10. 数据表中的字段最大数是多少?
表或视图中的最大列数为 1000

11. 怎样查得数据库的SID ?
select name from v$database;也可以直接查看 init.ora文件

12. 如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ?
select sys_context(‘userenv’,’ip_address’) from dual;
如果是登陆本机数据库,只能返回127.0.0.1

13. 如何用B表的资料去更新A表的数据(有关联的字段)
Update A SET BNS_SNM=(Select BNS_SNM FROM B Where A.DPT_NO=B.DPT_NO) Where B.DPT_NO IS NOT NULL;

14. 如何查询SERVER是不是OPS?(Oracle Parallel Server)可以让位于不同系统的多个实例同时访问同一个数据库。
Select * FROM V$OPTION;
如果PARALLEL SERVER=TRUE则有OPS

15. 如何查询每个用户的权限?
Select * FROM DBA_SYS_PRIVS;

16. 如何将表移动表空间?
Alter TABLE TABLE_NAME MOVE TABLESPACE_NAME;

17. 如何将索引移动表空间?
Alter INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;

18. 查询锁的状况的视图有?
V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS ;
查询锁住的表的方法:
Select S.SID SESSION_ID,S.USERNAME,DECODE(LMODE,0,’None’,1,’Null’,2,’Row-S (SS)’,3,
‘Row-X (SX)’,4,’Share’,5,’S/Row-X (SSX)’,6,’Exclusive’,TO_CHAR(LMODE)) MODE_HELD,
DECODE(REQUEST,0,’None’,1,’Null’,2,’Row-S (SS)’,3,’Row-X (SX)’,4,’Share’,5,’S/Row-X
(SSX)’,6,’Exclusive’,TO_CHAR(REQUEST)) MODE_REQUESTED,O.OWNER||’.’||O.OBJECT_NAME||’
(‘||O.OBJECT_TYPE||’)’,S.TYPE LOCK_TYPE,L.ID1 LOCK_ID1,L.ID2 LOCK_ID2 FROM V$LOCK L,
SYS.DBA_OBJECTS O,V$SESSION S Where L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;

19. 如何解锁?
Alter SYSTEM KILL SESSION ‘SID,SERIR#;

20. Oracle产生随机数的函数?
DBMS_RANDOM.RANDOM



无觅相关文章插件,快速提升流量

“ORACLE数据库使用的常见问题(一)”2 条评论

commenter

如何查看oracle数据库的版本
select * from v$version

commenter

oracle中主键索引的删除
当在ORACLE中新建一个表时,如果没有建立索引,默认是以主键索引,当用户想删除默认的索引时,由于是主键,所以会报错:
Error: ORA-02429: cannot drop index used for enforcement of unique/primary key
SQLState: 72000
ErrorCode: 2429
Position: 11
解决方式如下:
首先,去掉主键约束:ALTER TABLE sysa_code_t MODIFY PRIMARY KEY DISABLE
删除索引:drop index U221_629
恢复主键约束:ALTER TABLE sysa_code_t MODIFY PRIMARY KEY ENABLE