1. 程式人生 > 其它 >SQL 小技巧

SQL 小技巧

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