打印本文 打印本文 关闭窗口 关闭窗口
Oracle常見問題集(二)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4061  更新时间:2009/4/22 22:05:49  文章录入:mintao  责任编辑:mintao
:

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;

 

大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家,

希望對大家有幫助! 和大家一起探討, 共同進步!

 

ORACLE高手來說是不用看的.

 

虛擬欄位

 

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

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

打印本文 打印本文 关闭窗口 关闭窗口