Oracle百问百答.docx

上传人:b****6 文档编号:8681833 上传时间:2023-02-01 格式:DOCX 页数:11 大小:22.76KB
下载 相关 举报
Oracle百问百答.docx_第1页
第1页 / 共11页
Oracle百问百答.docx_第2页
第2页 / 共11页
Oracle百问百答.docx_第3页
第3页 / 共11页
Oracle百问百答.docx_第4页
第4页 / 共11页
Oracle百问百答.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Oracle百问百答.docx

《Oracle百问百答.docx》由会员分享,可在线阅读,更多相关《Oracle百问百答.docx(11页珍藏版)》请在冰豆网上搜索。

Oracle百问百答.docx

Oracle百问百答

1.oracle中的裸设备指的是什么?

 裸设备就是绕过文件系统直接访问的储存空间

2.oracle如何区分64-bit/32bit版本?

$sqlplus'/ASSYSDBA'

SQL*Plus:

Release9.0.1.0.0-ProductiononMonJul1417:

01:

092003

(c)Copyright2001OracleCorporation.Allrightsreserved.

Connectedto:

Oracle9iEnterpriseEditionRelease9.0.1.0.0-Production

WiththePartitioningoption

JServerRelease9.0.1.0.0-Production

SQL>select*fromv$version;

BANNER

----------------------------------------------------------------

Oracle9iEnterpriseEditionRelease9.0.1.0.0-Production

PL/SQLRelease9.0.1.0.0-Production

CORE9.0.1.0.0Production

TNSforSolaris:

Version9.0.1.0.0-Production

NLSRTLVersion9.0.1.0.0-Production

SQL>

3.请问如何分辨某个用户是从哪台机器登陆ORACLE的?

SELECTmachine,terminalFROMV$SESSION;

4.用什么语句查询字段呢?

desctable_name可以查询表的结构

selectfield_name,...from...可以查询字段的值

select*fromall_tableswheretable_namelike'%'

select*fromall_tab_columnswheretable_name='?

?

'

5.怎样得到触发器、过程、函数的创建脚本?

descuser_source

user_triggers

6.怎样计算一个表占用的空间的大小?

selectowner,table_name,

NUM_ROWS,

BLOCKS*AAA/1024/1024"SizeM",

EMPTY_BLOCKS,

LAST_ANALYZED

fromdba_tables

wheretable_name='XXX';

Here:

AAAisthevalueofdb_block_size;

XXXisthetablenameyouwanttocheck

7.如何查看最大会话数?

SELECT*FROMV$PARAMETERWHERENAMELIKE'proc%';

SQL>

SQL>showparameterprocesses

NAMETYPEVALUE

-------------------------------------------------------------------------

aq_tm_processesinteger1

db_writer_processesinteger1

job_queue_processesinteger4

log_archive_max_processesinteger1

processesinteger200

这里为200个用户。

select*fromv$license;

其中sessions_highwater纪录曾经到达的最大会话数

8.如何查看系统被锁的事务时间?

select*fromv$locked_object;

9.如何以archivelog的方式运行oracle。

init.ora

log_archive_start=true

RESTARTDATABASE

10.怎么获取有哪些用户在使用数据库

selectusernamefromv$session;

11.数据表中的字段最大数是多少?

表或视图中的最大列数为1000

12.怎样查得数据库的SID?

selectnamefromv$database;

也可以直接查看init.ora文件

13.如何在Oracle服务器上通过SQLPLUS查看本机IP地址?

selectsys_context('userenv','ip_address')fromdual;

如果是登陆本机数据库,只能返回127.0.0.1

14.在ORACLETABLE中如何抓取MEMO类型字段为空的资料记录?

selectremarkfromoms_flowrecwheretrim(''fromremark)isnotnull;

15.如何用BBB表的资料去更新AAA表的资料(有关联的字段)

UPDATEAAASETBNS_SNM=(SELECTBNS_SNMFROMBBBWHEREAAA.DPT_NO=BBB.DPT_NO)WHEREBBB.DPT_NOISNOT

NULL;

16.何查询SERVER是不是OPS?

 SELECT* FROMV$OPTION;

 如果PARALLELSERVER=TRUE则有OPS能

17.何查询每个用户的权限?

  SELECT* FROMDBA_SYS_PRIVS;

18.如何将表移动表空间?

 ALTERTABLETABLE_NAMEMOVETABLESPACE_NAME;

19.如何将索引移动表空间?

 ALTERINDEXINDEX_NAMEREBUILDTABLESPACETABLESPACE_NAME;

20.在LINUX,UNIX下如何激活DBASTUDIO?

  OEMAPP DBASTUDIO

21.查询锁的状况的对象有?

  V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS;

  查询锁的表的方法:

SELECTS.SIDSESSION_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.ID1LOCK_ID1,L.ID2LOCK_ID2FROMV$LOCKL,SYS.DBA_OBJECTSO,V$SESSIONSWHEREL.SID=

S.SIDANDL.ID1=O.OBJECT_ID;

22.如何解锁?

  ALTERSYSTEMKILLSESSION ‘SID,SERIR#’;

23.SQLPLUS下如何修改编辑器?

DEFINE_EDITOR="<编辑器的完整路经>" --必须加上双引号

来定义新的编辑器,也可以把这个写在$ORACLE_HOME/sqlplus/admin/glogin.sql里面使它永久有效。

24.ORACLE产生随机函数是?

  DBMS_RANDOM.RANDOM

25.LINUX下查询磁盘竞争状况命令?

  Sar -d

26.LINUX下查询CPU竞争状况命令?

  sar -r

27.查询当前用户对象?

  SELECT* FROMUSER_OBJECTS;

  SELECT* FROMDBA_SEGMENTS;

28.如何获取错误信息?

 SELECT* FROM USER_ERRORS;

29.如何获取链接状况?

 SELECT*FROMDBA_DB_LINKS;

30.查看数据库字符状况?

  SELECT* FROMNLS_DATABASE_PARAMETERS;

  SELECT* FROMV$NLS_PARAMETERS;

31.查询表空间信息?

  SELECT* FROM DBA_DATA_FILES;

32.ORACLE的INTERAL用户要口令?

 修改SQLNET.ORA

 SQLNET.AUTHENTICATION_SERVICES=(NTS)

33.如何给表、列加注释?

SQL>commentontable表is'表注释';

注释已创建。

SQL>commentoncolumn表.列is'列注释';

注释已创建。

SQL>select*fromuser_tab_commentswherecommentsisnotnull;

34.如何查看各个表空间占用磁盘情况?

SQL>coltablespaceformata20

SQL>selectb.file_id文件ID号,b.tablespace_name表空间名,

b.bytes

字节数,

(b.bytes-sum(nvl(a.bytes,0)))

已使用,

sum(nvl(a.bytes,0)) 

剩余空间,

sum(nvl(a.bytes,0))/(b.bytes)*100剩余百分比

fromdba_free_spacea,dba_data_filesb

wherea.file_id=b.file_id

groupbyb.tablespace_name,b.file_id,b.bytes

orderbyb.file_id

35.如把ORACLE设置为MTS或专用模式?

#dispatchers="(PROTOCOL=TCP)(SERVICE=SIDXDB)"

加上就是MTS,注释就是专用模式,SID是指你的实例名。

36.如何才能得知系统当前的SCN号?

selectmax(ktuxescnw*power(2,32)+ktuxescnb)fromx$ktuxe;

37.请问如何在ORACLE中取毫秒?

9i之前不支持,9i开始有timestamp.

9i可以用selectsystimestampfromdual;

38.如何在字符串里加回车?

  select'Welcometovisit'||chr(10)||'www.CSDN.NET'fromdual;

39.中文是如何排序的?

  Oracle9i之前,中文是按照二进制编码进行排序的。

  在oracle9i中新增了按照拼音、部首、笔画排序功能。

设置NLS_SORT值

  SCHINESE_RADICAL_M按照部首(第一顺序)、笔划(第二顺序)排序

  SCHINESE_STROKE_M按照笔划(第一顺序)、部首(第二顺序)排序

  SCHINESE_PINYIN_M按照拼音排序

40.如何改变WIN中SQL*Plus启动选项?

SQL*PLUS自身的选项设置我们可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中设置。

41.怎样修改oracel数据库的默认日期?

 altersessionsetnls_date_format='yyyymmddhh24miss';

 OR

 可以在init.ora中加上一行

nls_date_format='yyyymmddhh24miss'

42.如何将小表放入keep池中?

 altertablexxxstorage(buffer_poolkeep);

43.如何检查是否安装了某个patch?

  checkthat oraInventory

44.如何使select语句使查询结果自动生成序号?

selectrownum,COLfromtable;

45.如何知道数据裤中某个表所在的tablespace?

selecttablespace_namefromuser_tableswheretable_name='TEST';

select*fromuser_tables中有个字段TABLESPACE_NAME,(oracle);

select*fromdba_segmentswhere…;

46.怎么可以快速做一个和原表一样的备份表?

  createtablenew_tableas(select*fromold_table);

47.怎么在sqlplus下修改procedure?

 selectline,trim(text)tfromuser_sourcewherename=’A’orderbyline;

48.怎样解除PROCEDURE被意外锁定?

 altersystemkillsession,把那个session给杀掉,不过你要先查出她的sessionid

 or

 把该过程重新改个名字就可以了。

49.如何查看数据库的状态?

 unix下

ps-ef|grepora

windows下

看服务是否起来

是否可以连上数据库

50.请问如何修改一张表的主键?

altertableaaa

dropconstraintaaa_key;

altertableaaa

addconstraintaaa_keyprimarykey(a1,b1);

51.改变数据文件的大小?

用ALTERDATABASE....DATAFILE....;

手工改变数据文件的大小,对于原来的数据文件有没有损害。

52.怎样查看ORACLE中有哪些程序在运行之中?

 查看v$sessions表

53.怎么可以看到数据库有多少个tablespace?

select * fromdba_tablespaces;

54.如何修改oracle数据库的用户连接数?

修改initSID.ora,将process加大,重启数据库.

55.如何查出一条记录的最后更新时间?

 可以用logminer察看

56.如何在PL/SQL中读写文件?

UTL_FILE包允许用户通过PL/SQL读写操作系统文件。

57.怎样把“&”放入一条记录中?

insertintoavalues(translate('at{&}t','at{}','at'));

58.EXP 如何加QUERY参数?

EXPUSER/PASSFILE=A.DMPTABLES(BSEMPMS)

QUERY='"WHEREEMP_NO=\'S09394\'\";

59.如何创建SPFILE?

SQL>connect/assysdba

SQL>select*fromv$version;

SQL>createpfilefromspfile;

SQL>CREATESPFILEFROMPFILE='E:

\ora9i\admin\eygle\pfile\init.ora';

文件已创建。

SQL>CREATESPFILE='E:

\ora9i\database\SPFILEEYGLE.ORA'FROM

PFILE='E:

\ora9i\admin\eygle\pfile\init.ora';

文件已创建。

60.内核参数的应用?

shmmax

  含义:

这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数

目。

这个设置也不影响操作系统的内核资源。

  设置方法:

0.5*物理内存

  例子:

Setshmsys:

shminfo_shmmax=10485760

  shmmin

  含义:

共享内存的最小大小。

  设置方法:

一般都设置成为1。

  例子:

Setshmsys:

shminfo_shmmin=1:

  shmmni

  含义:

系统中共享内存段的最大个数。

  例子:

Setshmsys:

shminfo_shmmni=100

  shmseg

  含义:

每个用户进程可以使用的最多的共享内存段的数目。

  例子:

Setshmsys:

shminfo_shmseg=20:

  semmni

  含义:

系统中semaphoreidentifierer的最大个数。

  设置方法:

把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那

个值加10。

  例子:

Setsemsys:

seminfo_semmni=100

  semmns

  含义:

系统中emaphores的最大个数。

  设置方法:

这个值可以通过以下方式计算得到:

各个Oracle实例的initSID.ora里边的processes的值的总和(

除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。

  例子:

Setsemsys:

seminfo_semmns=200

  semmsl:

  含义:

一个set中semaphore的最大个数。

  设置方法:

设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。

  例子:

Setsemsys:

seminfo_semmsl=-200

61.怎样查看哪些用户拥有SYSDBA、SYSOPER权限?

SQL>connsys/change_on_install

SQL>select*fromV_$PWFILE_USERS;

62.如何单独备份一个或多个表?

 exp用户/密码tables=(表1,…,表2)

63.如何单独备份一个或多个用户?

 expsystem/managerowner=(用户1,用户2,…,用户n)file=导出文件

64.如何对CLOB字段进行全文检索?

SELECT*FROMAWHEREdbms_lob.instr(a.a,'K',1,1)>0;

65.如何显示当前连接用户?

 SHOW USER

66.如何查看数据文件放置的路径?

SQL>colfile_nameformata50

SQL>selecttablespace_name,file_id,bytes/1024/1024,file_namefromdba_data_filesorderbyfile_id;

67.如何查看现有回滚段及其状态?

SQL>colsegmentformata30

SQL>SELECTSEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUSFROMDBA_ROLLBACK_SEGS

68.如何改变一个字段初始定义的Check范围?

SQL>altertablexxxdropconstraintconstraint_name;

之后再创建新约束:

SQL>altertablexxxaddconstraintconstraint_namecheck();

69.Oracle常用系统文件有哪些?

通过以下视图显示这些文件信息:

v$database,v$datafile,v$logfilev$controlfilev$parameter;

70.内连接INNERJOIN?

Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no=b.dpt_no;

71.如何外连接?

 Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no=b.dpt_no(+);

Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no(+)=b.dpt_no;

72.如何执行脚本SQL文件?

 SQL>@$PATH/filename.sql;

73.如何快速清空一个大表?

SQL>truncatetabletable_name;

74.如何查有多少个数据库实例?

 SQL>SELECT*FROMV$INSTANCE;

75.如何查询数据库有多少表?

SQL>select*fromall_tables;

76.如何测试SQL语句执行所用的时间?

SQL>settimingon;

 SQL>select*fromtablename;

77.CHR()的反函数是?

  ASCII()

  SELECTCHAR(65)FROMDUAL; 

  SELECTASCII('A')FROMDUAL;

78.字符串的连接

  SELECTCONCAT(COL1,COL2)FROMTABLE;

  SELECTCOL1||COL2FROMTABLE;

79.怎么把select出来的结果导到一个文本文件中?

  SQL>SPOOL C:

\ABCD.TXT;

  SQL>select* fromtable;

  SQL>spooloff;

80.怎样估算SQL执行的I/O数?

  SQL>SETAUTOTRACEON;

  SQL>SELECT*FROMTABLE;

  OR

  SQL>SELECT* FROM v$filestat;

可以查看IO数

81.如何在sqlplus下改变字段大小?

  altertabletable_namemodify(field_namevarchar2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1