| :
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] 下一页 |