SQL 小技巧
阿新 • • 發佈:2022-02-13
SQL 小技巧
不定時更新,歡迎交流指正
Oracle
1.浮點數轉為字元
trim('.' from to_char(xxx,'fm999990.99'))
2.查詢當前使用者下各表大小
檢視資料庫表空間儲存物件的大小
SELECT *
FROM (SELECT SEGMENT_NAME,
T.SEGMENT_TYPE,
round(SUM(BYTES) / 1024 / 1024/1024 ,2) SEGMENT_SIZE
FROM USER_SEGMENTS T
GROUP BY T.SEGMENT_NAME, T.SEGMENT_TYPE) T
ORDER BY SEGMENT_SIZE DESC;
實際表佔用空間大小,包括表所屬物件:INDEX、LOBINDEX、LOBSEGMENT
SELECT *
FROM (SELECT SEGMENT_NAME,
SEGMENT_TYPE,
ROUND(SUM(BYTES) / 1024 / 1024 / 1024, 2) SEGMENT_SIZE
FROM (SELECT T.TABLESPACE_NAME,
T.SEGMENT_NAME,
T.SEGMENT_TYPE,
T.BYTES
FROM USER_SEGMENTS T
WHERE T.SEGMENT_TYPE NOT IN
('INDEX', 'LOBINDEX', 'LOBSEGMENT')
UNION ALL
SELECT T.TABLESPACE_NAME,
UL.TABLE_NAME AS SEGMENT_NAME,
'TABLE' AS SEGMENT_TYPE,
T.BYTES
FROM USER_SEGMENTS T
INNER JOIN USER_LOBS UL
ON T.SEGMENT_NAME = UL.SEGMENT_NAME
WHERE T.SEGMENT_TYPE = 'LOBSEGMENT'
UNION ALL
SELECT T.TABLESPACE_NAME,
UI.TABLE_NAME AS SEGMENT_NAME,
'TABLE' AS SEGMENT_TYPE,
T.BYTES
FROM USER_SEGMENTS T
INNER JOIN USER_INDEXES UI
ON T.SEGMENT_NAME = UI.INDEX_NAME
WHERE T.SEGMENT_TYPE IN ('INDEX', 'LOBINDEX')) T
GROUP BY SEGMENT_NAME, SEGMENT_TYPE) T
ORDER BY SEGMENT_SIZE DESC;
3.PL/SQL 匯入CSV檔案前建議先查一下字元編碼
select userenv(‘language’) from dual;
得到字元編碼後再將csv檔案做對應字元編碼轉換,避免不必要的時間浪費
本文來自部落格園,作者:Splus,轉載請註明原文連結:https://www.cnblogs.com/s-plus/p/15889932.html