日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle常用sql(持续更新)

發布時間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle常用sql(持续更新) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--1、oracle查看表空間使用情況?

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",

? ? ? ?D.TOT_GROOTTE_MB "表空間大小(M) ",

? ? ? ?D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M) ",

? ? ? ?TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,

? ? ? ? ? ? ? ? ? ? ?2),

? ? ? ? ? ? ? ?'990.99') "使用比",

? ? ? ?F.TOTAL_BYTES "空閑空間(M) ",

? ? ? ?F.MAX_BYTES "最大塊(M) "

? FROM (SELECT TABLESPACE_NAME,

? ? ? ? ? ? ? ?ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

? ? ? ? ? ? ? ?ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

? ? ? ? ? FROM SYS.DBA_FREE_SPACE

? ? ? ? ?GROUP BY TABLESPACE_NAME) F,

? ? ? ?(SELECT DD.TABLESPACE_NAME,

? ? ? ? ? ? ? ?ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

? ? ? ? ? FROM SYS.DBA_DATA_FILES DD

? ? ? ? ?GROUP BY DD.TABLESPACE_NAME) D

?WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

?ORDER BY 4 DESC;

?

--2、oracle是否開啟自動擴展?

SELECT T.TABLESPACE_NAME,

? ? ? ?D.FILE_NAME,

? ? ? ?D.AUTOEXTENSIBLE,

? ? ? ?D.BYTES,

? ? ? ?D.MAXBYTES,

? ? ? ?D.STATUS

? FROM DBA_TABLESPACES T, DBA_DATA_FILES D

?WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME

?ORDER BY TABLESPACE_NAME, FILE_NAME;

?

--3、oracle中查看表是否被鎖定:

SELECT s.USERNAME,s.STATUS, object_name, machine, s.sid, s.serial#?

? from gv$locked_object i, dba_objects o, gv$session s

?where i.object_id = o.object_id

? ?and i.session_id = s.sid;

?

--4、殺死進程語句:

--alter system kill session 'sid, serial#'

alter system kill session '2838, 58765'; --(sid, srial#)?

?

--5、Oracle遞歸查詢(樹型查詢)

--prior放的左右位置決定了檢索是自底向上還是自頂向下. 左邊是自上而下(找子節點),右邊是自下而上(找父節點)

SELECT T.AREA_CODE, T.AREA_NAME, T.AREA_LEVEL

? FROM TBL_SYS_AREA_CODE T

CONNECT BY PRIOR T.AREA_CODE = T.PARENT_AREA_CODE

?START WITH T.PARENT_AREA_CODE = 'xxxx';

?

SELECT T.AREA_CODE, T.AREA_NAME, T.AREA_LEVEL

? FROM TBL_SYS_AREA_CODE T

CONNECT BY T.AREA_CODE = PRIOR T.PARENT_AREA_CODE

?START WITH T.Area_Name = 'xxxx';?

--查找死循環

select * from table_t t where t.id=t.p_id;
select *
from (select id, p_id, CONNECT_BY_ISCYCLE CYCLED
from table_t
connect by nocycle prior id = p_id
start with id = 'xxx') a
where a.CYCLED > 0;

?

--6、同一字段用逗號分隔(列轉行):?

SELECT LISTAGG(CASE

? ? ? ? ? ? ? ? ?WHEN FUNC_CHECKDISABILITYCARD(S.AAD003) = 0 THEN

? ? ? ? ? ? ? ? ? S.AAD003

? ? ? ? ? ? ? ?END) WITHIN GROUP(ORDER BY S.AHH002) AS C022_DESC

? FROM AA01_2014 T, AH02_2014 S

?WHERE T.STATUS <> 0

? ?AND S.STATUS <> 0

? ?AND T.AAA001 = S.AAA001

? ?AND T.AAH009 <> '-1'

? ?AND T.BASENUM_FLAG = '2016'

? ?AND T.AAH009 IS NOT NULL

?GROUP BY S.AAA001;

?

--7、mysql逗號分隔

select Group_concat(id SEPARATOR ',') from tT;

?

--8、復制表結構及數據

create table_name as select * from Source_table where 1=1;

復制表結構?

create table_name as select * from Source_table where 1 <> 1;

?

--9、oracle 排序: dense_rank() over(order by t.df desc)?

?

--10、根據表名查詢過程名

SELECT name,

?type,

?referenced_owner,

?referenced_name,

?referenced_type

? FROM user_dependencies

?WHERE referenced_name = upper('tb_poor_tpysdf')

? ?AND type = 'PROCEDURE';

?

SELECT DISTINCT NAME

? FROM USER_SOURCE

?WHERE TYPE = 'PROCEDURE'

? ?AND UPPER(TEXT) LIKE UPPER('%insert into TBL_DA_POOR_VILLAGE_INFO%');

?

--11、查詢Oracle正在執行的sql語句及執行該語句的用戶

SELECT b.sid oracleID, ?

? ? ? ?b.username Oracle用戶, ?

? ? ? ?b.serial#, ?

? ? ? ?spid 操作系統ID, ?

? ? ? ?paddr, ?

? ? ? ?sql_text 正在執行的SQL, ?

? ? ? ?b.machine 計算機名 ?

FROM v$process a, v$session b, v$sqlarea c ?

WHERE a.addr = b.paddr ?

? ?AND b.sql_hash_value = c.hash_value;

? ?

--12、查看正在執行sql的發起者的發放程序

SELECT A.serial#,OSUSER 電腦登錄身份,

? ? ? ?PROGRAM 發起請求的程序, ?

? ? ? ?USERNAME 登錄系統的用戶名, ?

? ? ? ?SCHEMANAME, ?

? ? ? ?B.Cpu_Time 花費cpu的時間, ?

? ? ? ?STATUS, ?

? ? ? ?B.SQL_TEXT 執行的sql ?

FROM V$SESSION A ?

LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS ?

? ? ? ? ? ? ? ? ? ?AND A.SQL_HASH_VALUE = B.HASH_VALUE ?

ORDER BY b.cpu_time DESC?

?

--13、查出oracle當前的被鎖對象

SELECT l.session_id sid, ?

? ? ? ?s.serial#, ?

? ? ? ?l.locked_mode 鎖模式, ?

? ? ? ?l.oracle_username 登錄用戶, ?

? ? ? ?l.os_user_name 登錄機器用戶名, ?

? ? ? ?s.machine 機器名, ?

? ? ? ?s.terminal 終端用戶名, ?

? ? ? ?o.object_name 被鎖對象名, ?

? ? ? ?s.logon_time 登錄數據庫時間 ?

FROM v$locked_object l, all_objects o, v$session s ?

WHERE l.object_id = o.object_id ?

? ?AND l.session_id = s.sid ?

ORDER BY sid, s.serial#;?

?

--14、

SELECT b.sid oracleID, ?

? b.username 登錄Oracle用戶名, ?

? b.serial#, ?

? spid 操作系統ID, ?

? paddr, ?

? sql_text 正在執行的SQL, ?

? b.machine 計算機名 ?

FROM v$process a, ?

? v$session b, ?

? v$sqlarea c ?

WHERE a.addr = b.paddr ?

AND b.sql_hash_value = c.hash_value;?

?

--15、查出鎖定表的sid, serial#,os_user_name, machine_name, terminal,鎖的type,mode

SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,

s.terminal, s.logon_time, l.type

FROM v$session s, v$lock l

WHERE s.sid = l.sid

AND s.username IS NOT NULL

ORDER BY sid;

?

--16、查看臨時表空間

select *

? from (Select a.tablespace_name,

? ? ? ? ? ? ? ?to_char(a.bytes / 1024 / 1024, '99,999.999') total_bytes,

? ? ? ? ? ? ? ?to_char(b.bytes / 1024 / 1024, '99,999.999') free_bytes,

? ? ? ? ? ? ? ?to_char(a.bytes / 1024 / 1024 - b.bytes / 1024 / 1024,

? ? ? ? ? ? ? ? ? ? ? ?'99,999.999') use_bytes,

? ? ? ? ? ? ? ?to_char((1 - b.bytes / a.bytes) * 100, '99.99') || '%' use

? ? ? ? ? from (select tablespace_name, sum(bytes) bytes

? ? ? ? ? ? ? ? ? from dba_data_files

? ? ? ? ? ? ? ? ?group by tablespace_name) a,

? ? ? ? ? ? ? ?(select tablespace_name, sum(bytes) bytes

? ? ? ? ? ? ? ? ? from dba_free_space

? ? ? ? ? ? ? ? ?group by tablespace_name) b

? ? ? ? ?where a.tablespace_name = b.tablespace_name

? ? ? ? union all

? ? ? ? select c.tablespace_name,

? ? ? ? ? ? ? ?to_char(c.bytes / 1024 / 1024, '99,999.999') total_bytes,

? ? ? ? ? ? ? ?to_char((c.bytes - d.bytes_used) / 1024 / 1024, '99,999.999') free_bytes,

? ? ? ? ? ? ? ?to_char(d.bytes_used / 1024 / 1024, '99,999.999') use_bytes,

? ? ? ? ? ? ? ?to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use

? ? ? ? ? from (select tablespace_name, sum(bytes) bytes

? ? ? ? ? ? ? ? ? from dba_temp_files

? ? ? ? ? ? ? ? ?group by tablespace_name) c,

? ? ? ? ? ? ? ?(select tablespace_name, sum(bytes_cached) bytes_used

? ? ? ? ? ? ? ? ? from v$temp_extent_pool

? ? ? ? ? ? ? ? ?group by tablespace_name) d

? ? ? ? ?where c.tablespace_name = d.tablespace_name)

?order by tablespace_name ;

?

--17、表空間大小以及使用率

SELECT A.TABLESPACE_NAME "表空間名",

? ? ? ?ROUND(TOTAL / 1024 / 1024 / 1024, 4) 表空間大小GB,

? ? ? ?ROUND(FREE / 1024 / 1024 / 1024, 4) 表空間剩余大小GB,

? ? ? ?ROUND((TOTAL - FREE) / 1024 / 1024 / 1024, 4) 表空間使用大小GB,

? ? ? ?ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用率 %"

? FROM (SELECT TABLESPACE_NAME, SUM(BYTES) FREE

? ? ? ? ? FROM DBA_FREE_SPACE

? ? ? ? ?GROUP BY TABLESPACE_NAME) A,

? ? ? ?(SELECT TABLESPACE_NAME, SUM(BYTES) TOTAL

? ? ? ? ? FROM DBA_DATA_FILES

? ? ? ? ?GROUP BY TABLESPACE_NAME) B

?WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME

?ORDER BY 5 DESC;

?

--18、查看臨時表分區

SELECT *

? FROM (SELECT USERNAME,

? ? ? ? ? ? ? ?SESSION_ADDR,

? ? ? ? ? ? ? ?SQL_ID,

? ? ? ? ? ? ? ?CONTENTS,

? ? ? ? ? ? ? ?SEGTYPE,

? ? ? ? ? ? ? ?BLOCKS * 8 / 1024 / 1024 GB

? ? ? ? ? FROM V$SORT_USAGE

? ? ? ? ?ORDER BY BLOCKS DESC)

?WHERE ROWNUM <= 200;

?

--19、查詢表的字段個數

select count(1) from user_col_comments where table_name = upper( 'tbl_sys_user');

?

--20、字段用逗號隔開轉成一行

SELECT LISTAGG(COLUMN_NAME, ',') WITHIN GROUP(ORDER BY COLUMN_ID) AS COLUMN_ORDER

? FROM DBA_TAB_COLUMNS

?WHERE OWNER = UPPER('hndajzfp')

? ?AND TABLE_NAME = UPPER('tbl_fpxm_poor_jyfp')

?ORDER BY COLUMN_ID;

?

--20、刪除重復數據

UPDATE TBL_POOR_FAMILY_SIGN S

? ?SET S.STATE = '0'

?WHERE (S.USER_ID, SUBSTR(S.CREATE_TIME, 0, 10)) IN

? ? ? ?(SELECT T.USER_ID, SUBSTR(T.CREATE_TIME, 0, 10)

? ? ? ? ? FROM TBL_POOR_FAMILY_SIGN T

? ? ? ? ?WHERE T.CREATE_TIME IS NOT NULL

? ? ? ? ? ?AND T.STATE != '0'

? ? ? ? ?GROUP BY SUBSTR(T.CREATE_TIME, 0, 10), T.USER_ID

? ? ? ? HAVING COUNT(T.USER_ID) > 1)

? ?AND ROWID NOT IN (SELECT MIN(ROWID)

? ? ? ? ? ? ? ? ? ? ? ?FROM TBL_POOR_FAMILY_SIGN T

? ? ? ? ? ? ? ? ? ? ? WHERE T.CREATE_TIME IS NOT NULL

? ? ? ? ? ? ? ? ? ? ? ? AND T.STATE != '0'

? ? ? ? ? ? ? ? ? ? ? GROUP BY SUBSTR(T.CREATE_TIME, 0, 10), T.USER_ID

? ? ? ? ? ? ? ? ? ? ?HAVING COUNT(T.USER_ID) > 1);

? ? ??

--21、回車符換行符替換為空

SELECT translate(t.xjbfdw,chr(13)||chr(10),',') FROM tbl_hyfp_wsfp t?

?

--22、分區、子分區信息

SELECT * FROM USER_TAB_PARTITIONS;

SELECT * FROM USER_TAB_SUBPARTITIONS;?

?

--23、存在2017年分區但不存在2018年分區

SELECT S.TABLE_NAME

? FROM (SELECT MAX(INSTR(T.PARTITION_NAME, '2018')) EXISTPAR2018,

? ? ? ? ? ? ? ?MAX(INSTR(T.PARTITION_NAME, '2017')) EXISTPAR2017,

? ? ? ? ? ? ? ?T.TABLE_NAME

? ? ? ? ? FROM USER_TAB_PARTITIONS T

? ? ? ? ?GROUP BY T.TABLE_NAME) S

?WHERE S.EXISTPAR2018 = 0

? ?AND EXISTPAR2017 > 0;

?

--24、逗號分割

select regexp_substr(t.BFRY_RY_TYPE, '[^,]+', 1, rownum)

from TBL_JCXX_BFRY t

where t.BFRY_PHONE = '18740760464'

connect by rownum <= length(regexp_replace(t.BFRY_RY_TYPE, '[^,]', null));

?

--25、字符串相似度

?

select *

from (select

? ? ? ? s.USER_TYPE,

? ? ? ? t.BFRY_RY_TYPE,

? ? ? ? SYS.UTL_MATCH.edit_distance_similarity(s.USER_ID,t.BFRY_RY_TYPE) 相似度

? ? ? from TBL_JCXX_BFRY t,TBL_SYS_USER s where t.BFRY_RY_TYPE=s.USER_ID)

order by 相似度 desc;

--26、interval 用法

select sysdate - interval '10' day as "10天前",
?????? sysdate - interval '10' hour as "10小時前",
?????? sysdate - interval '10' minute as "10分鐘前",
?????? sysdate - interval '10' second as "10秒鐘前",
?????? sysdate - 10 as "10天前",
?????? sysdate - 10 / 24 as "10小時前",
?????? sysdate - 10 / (24 * 60) as "10分鐘前",
?????? sysdate - 10 / (24 * 3600) as "10秒鐘前"
? from dual; --------------------- 本文來自 xulei_19850322 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/xulei_19850322/article/details/4233445?utm_source=copy?

?

?

TBL???詳細X 網絡釋義 TBL: 總膽紅素 TBL TSP: 表示法六 ARP tbl: 動態ARP表信息

轉載于:https://www.cnblogs.com/ViokingJava/p/9453039.html

總結

以上是生活随笔為你收集整理的Oracle常用sql(持续更新)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。