您的位置:首页 > 数据库 > Oracle

ORACLE学习之笔记(一)

2013-07-29 17:38 120 查看
1:怎样在SQLPLUS下修改PROCEDURE?

通过源代码表查看并修改:select line,trim(text) t from user_source where name='A' order by line;

 

2:怎样修改ORACLE数据库的默认日期格式?

a) alter session set nls_data_format ='yyyymmddhh24miss';

b)在init.ora中加上一行: nls_data_format='yyyymmddhh24miss'

 

3:ORACLE8i中对象可以使用中文吗?

可以

 

4:ORACLE中,中文是如何排序的?

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

在ORACLE9i及之后增加了按照拼音、部首、笔画排序的功能。设置NLS_SORT值:

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

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

SCHINESE_PINYIN_M      按照拼音排序。

 

5:如何在字符串里加回车?

select 'Hello'||chr(10)||'everyone' from dual;

 

6:如何查看数据库字符状况?

SELECT * FROM NLS_DATABASE_PARAMETERS;

SELECT * FROM V$NLS_PARAMETERS;

 

7:程序等待一定时间方法(例如10秒)。

dbms_lock.sleep(10);

 

8:ORACLE杀进程语句。

ALTER SYSTEM KILL SESSION 'SID,SERIR#';

 

9:查询锁住的表的方法:

SELECT S.SID SESSEION_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;

 

10:如何将表、索引移动表空间?

表:ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;

索引:ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;

 

11:UNIX下怎么调整数据库的时间?

su -root

date -u 08010000

 

12:数据库表中的字段数最大是多少?

表、视图中最大的列数为1000.

 

13:如何给表、列加注释?

COMMENT ON TABLE TABLE_NAME IS '表注释';

COMMENT ON COLUMN 表名.列名 IS '列注释';

查看:SELECT * FROM USER_TAB_COMMENTS;

 

14:如何改变数据文件的大小?

修改数据文件的大小首先要计算此文件已经使用多少,总共多少,剩余多少,然后权衡一个改变后的大小(如果是缩小更加要注意)。

通过V$DBA_DATA_FILES,V$DBA_FREE_SPACE  2个视图来计算对应数据文件的使用情况。

改变语句:ALTER DATABASE DATAFILE  文件名(加引号) RESIZE 10G;

 

15:EXP导出数据如何加QUERY参数?

EXP USER/PASS  FILE=A.DMP TABLES=(EMPT) QUERY=' "WHERE EMP_NO=\'COMPUTER\'\";

 

16:怎么样查看那些用户拥有SYSDBA/SYSOPER权限?

SELECT * FROM v$pwfile_users;

 

17:如何对CLOB字段进行全文检索?

SELECT * FROM A WHERE DBMS_LOB.INSTR(A.B,'K',1,1) > 0 ;

 

18:如何查看当前连接用户?

SHOW USER

 

19:如何批量执行写好的sql文件脚本?

SQL>@$path/filename.sql;

 

20:怎么把SELECT 出来的结果导入到txt中?

SQL>SPOOL D:\1.TXT;

SQL>SELECT * FROM T;

SQL>SPOOL OFF;

 

21:如何修改表名?

ALTER TABLE A  RENAME  TO B;

 

22:sql变成中的几个隐藏的数据。

SQL%FOUND;

SQL%NOTFOUND

SQL%ROWCOUNT;--影响的行

SQL%ISOPEN;

SQLCODE  0表示成功;

SQLERRM 失败(错误)原因。

 

23:如何计算名次排名?

SELECT row_number() OVER (ORDER BY opcdpccategory),--无并列

       RANK() OVER (order BY opcdpccategory),--有并列

    dt.* from cfg_dbquery dt ;

 

24:USED_UBLK 为负值表示什么意思?

It  is "harmless".

 

25:FLOOR,CEIL两个函数解释。

FLOOR(N):返回小于N的最大整数值;

CEIL(N):返回大于N的最小整数值。

 

26:返回当前月的最后一天。

SELECT LAST_DAY(SYSDATE) FROM DUAL;

 

27:日期的相关函数。

返回星期几的写法:SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;

返回一年中的第几天:SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

返回一年中的第几周:SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;

 

28:如何查看回滚段的争用情况?

SELECT NAME,waits,gets,waits/gets "Ratio"

FROM v$rollstat C,v$rollname D

WHERE C.usn=D.usn;

 

29:如何监控表空间的I/0比例?

SELECT B.tablespace_name ,B.file_name,A.phyrds,A.phyblkrd,A.phywrts,A.phyblkwrt

FROM v$filestat A,dba_data_files B

WHERE A.file#=b.file_id

ORDER BY B.tablespace_name;

 

30:如何监控文件系统的I/O比例?

SELECT SUBSTR(C.file#,1,2) "#",SUBSTR(C.name,1,30) "NAME",C.status,C.bytes,D.phyrds,D.phywrts

FROM v$datafile C,v$filestat D

WHERE C.file#=D.file#;

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Oracle