Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1791468
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类: Oracle

2009-09-06 09:02:59

101. 如何搜索出前N条记录?
SELECT * FROM empLOYEE WHERE ROWNUM < n
ORDER BY empno

102.
如何知道机器上的Oracle支持多少并发用户数?
SQL>conn internal

SQL>show parameter processes

103. db_block_size
可以修改吗?
一般不可以﹐不建议这样做的。
104.
如何统计两个表的记录总数?
select (select count(id) from aa)+(select count(id) from bb)
总数 from dual
105.
怎样用Sql语句实现查找一列中第N大值?
select * from
(select t.*
dense_rank() over (order by sal) rank from employee)
where rank = N

106.
如何在给现有的日期加上2年?(
select add_months(sysdate
24) from dual
107. USED_UBLK
为负值表示什么意思?
It is "harmless"

108. Connect string
是指什么?
应该是tnsnames.ora中的服务名后面的内容
109.
怎样扩大REDO LOG的大小?
建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志。
110. tablespace
是否不能大于4G?
没有限制。
111.
返回大于等于N的最小整数值?
SELECT CEIL(N) FROM DUAL

112.
返回小于等于N的最小整数值?
SELECT FLOOR(N) FROM DUAL

113.
返回当前月的最后一天?
SELECT LAST_DAY(SYSDATE) FROM DUAL

114.
如何不同用户间数据导入?
IMP SYSTEM/MANAGER FILE=AA.DMP FROMUSER=USER_OLD TOUSER=USER_NEW ROWS=Y INDEXES=Y

115.
如何找数据库表的主键字段的名称?
SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME'

116.
两个结果集互加的函数?
SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW

SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW
SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW

117.
两个结果集互减的函数?
SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW

118.
如何配置Sequence?
sequence seq_custid
create sequence seq_custid start 1 incrememt by 1

建表时:
create table cust
{ cust_id smallint not null

...}
insert
时:
insert into table cust
values( seq_cust.nextval
...)
日期的各部分的常用的的写法
119.
取时间点的年份的写法:
SELECT TO_CHAR(SYSDATE
'YYYY') FROM DUAL
120.
取时间点的月份的写法:
SELECT TO_CHAR(SYSDATE
'MM') FROM DUAL
121.
取时间点的日的写法:
SELECT TO_CHAR(SYSDATE
'DD') FROM DUAL
122.
取时间点的时的写法:
SELECT TO_CHAR(SYSDATE
'HH24') FROM DUAL
123.
取时间点的分的写法:
SELECT TO_CHAR(SYSDATE
'MI') FROM DUAL
124.
取时间点的秒的写法:
SELECT TO_CHAR(SYSDATE
'SS') FROM DUAL
125.
取时间点的日期的写法:
SELECT TRUNC(SYSDATE) FROM DUAL

126.
取时间点的时间的写法:
SELECT TO_CHAR(SYSDATE
'HH24MISS') FROM DUAL
127.
日期,时间形态变为字符形态:
SELECT TO_CHAR(SYSDATE) FROM DUAL

128.
将字符串转换成日期或时间形态:
SELECT TO_DATE('2003/08/01') FROM DUAL

129.
返回参数的星期几的写法:
SELECT TO_CHAR(SYSDATE
'D') FROM DUAL
130.
返回参数一年中的第几天的写法:
SELECT TO_CHAR(SYSDATE
'DDD') FROM DUAL
131.
返回午夜和参数中指定的时间值之间的秒数的写法:
SELECT TO_CHAR(SYSDATE
'SSSSS') FROM DUAL
132.
返回参数中一年的第几周的写法:
SELECT TO_CHAR(SYSDATE
'WW') FROM DUAL
虚拟字段
133. CURRVAL
nextval
为表创建序列
CREATE SEQUENCE EMPSEQ ...

SELECT empseq.currval FROM DUAL

自动插入序列的数值
INSERT INTO emp
VALUES (empseq.nextval, 'LEWIS', 'CLERK',
7902, SYSDATE, 1200, NULL, 20)

134. ROWNUM
按设定排序的行的序号
SELECT * FROM emp WHERE ROWNUM < 10

135. ROWID
返回行的物理地址
SELECT ROWID, ename FROM emp WHERE deptno = 20

136.
N秒转换为时分秒格式?
set serverout on
declare
N number
= 1000000
ret varchar2(100)

begin
ret
= trunc(n/3600) || '小时' || to_char(to_date(mod(n,3600),'sssss'),'fmmi" "ss""')
dbms_output.put_line(ret)

end

137.
如何查询做比较大的排序的进程?
SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, a.username, a.osuser, a.status
FROM v$session a,v$sort_usage b
WHERE a.saddr = b.session_addr
ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks

138.
如何查询做比较大的排序的进程的SQL语句?
select /*+ ORDERED */ sql_text from v$sqltext a
where a.hash_value = (
select sql_hash_value from v$session b
where b.sid = &sid and b.serial# = &serial)
order by piece asc

139.
如何查找重复记录?
SELECT * FROM TABLE_NAME
WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2)

140.
如何删除重复记录?
DELETE FROM TABLE_NAME
WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2)

141.
如何快速编译所有视图?
SQL >SPOOL VIEW1.SQL
SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
COMPILE
;’ FROM TAB
SQL >SPOOL OFF
然后执行VIEW1.SQL即可。
SQL >@VIEW1.SQL

142. ORA-01555 SNAPSHOT TOO OLD
的解决办法
增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。
143.
事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数 MAXEXTENTS的值(ORA-01628)的解决办法。
向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。
144.
如何加密ORACLE的存储过程?
下列存储过程内容放在AA.SQL文件中
create or replace procedure testCCB(i in number) as
begin
dbms_output.put_line('
输入参数是'||to_char(i))
end

SQL>wrap iname=a.sql

PL/SQL Wrapper
Release 8.1.7.0.0 - Production on Tue Nov 27 222648 2001
Copyright (c) Oracle Corporation 1993, 2000. All Rights Reserved

Processing AA.sql to AA.plb
运行AA.plb
SQL> @AA.plb

145.
如何监控事例的等待?
select event,sum(decode(wait_Time,0,0,1)) "Prev",
sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
from v$session_Wait
group by event order by 4

146.
如何回滚段的争用情况?
select name, waits, gets, waits/gets "Ratio"
from v$rollstat C, v$rollname D
where C.usn = D.usn

147.
如何监控表空间的 I/O 比例?
select B.tablespace_name name, B.file_name "file", A.phyrds pyr, A.phyblkrd pbr, A.phywrts pyw, A.phyblkwrt pbw
from v$filestat A, dba_data_files B
where A.file# = B.file_id
order by B.tablespace_name

148.
如何监控文件系统的 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#

149.
如何在某个用户下找所有的索引?
select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
from user_ind_columns, user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = user_indexes.table_name
order by user_indexes.table_type, user_indexes.table_name,
user_indexes.index_name, column_position
阅读(698) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~