中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle有什么常用腳本

發布時間:2021-08-19 10:10:20 來源:億速云 閱讀:111 作者:chen 欄目:關系型數據庫

這篇文章主要講解了“Oracle有什么常用腳本”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Oracle有什么常用腳本”吧!

1.linux 啟動數據庫腳本

#!/bin/bash

export ORACLE_HOSTNAME=emcc.example.com

echo "Starting the Oracle Database and network listener ....."

echo ""

export ORACLE_HOME=/u01/db/product/dbhome_1

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=orcl

$ORACLE_HOME/bin/lsnrctl start

$ORACLE_HOME/bin/sqlplus '/as sysdba'<<- _START_DB

        startup;

        alter system register;

        exit;

_START_DB

2.查詢主外鍵依賴腳本

select b.owner as parent_owner,b.table_name as parent_table,a.owner as child_owner,a.table_name as child_table
from dba_constraints a, dba_constraints b
where a.constraint_type='R' 

         and a.r_constraint_name = b. constraint_name 

         and b.constraint_type='P'
         and b.table_name=<被依賴表名>;

3.查看數據庫字符集

select * from nls_database_parameters;


4.查詢數字代表的字符集

在sqlplus里通過select nls_charset_name(852) from dual;可以查看該數字代表的字符集。

03 03 54 45 58 50 4F 52 54 3A

其中,03 54是16進制的數字,代表了一種字符集。將其轉換為10進制為:

SQL> select to_number('0354','xxxx') from dual;
TO_NUMBER('0354','XXXX')
------------------------
                    852
查詢852代表的字符集
SQL> select nls_charset_name(852) from dual;
NLS_CHAR
--------
ZHS16GBK


逆向操作:
SQL> select nls_charset_id('ZHS16GBK') from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
                      852

------------------------------------------------------------------------------------------

如何查詢dmp文件的字符集
用oracle的exp工具導出的dmp文件也包含了字符集信息,dmp文件的第2和第3個字節記錄了dmp文件的字符集。如果dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進制方式),看第2第3個字節的內容,如0354,然后用以下SQL查出它對應的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
如果dmp文件很大,比如有2G以上(這也是最常見的情況),用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機上):
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
然后用上述SQL也可以得到它對應的字符集。


5.查看表空間的使用情況 
SELECT trunc(SUM(bytes) / (1024 * 1024 * 1024),2) AS free_space, tablespace_name 
FROM dba_free_space 
GROUP BY tablespace_name; 


SELECT a.tablespace_name, 
trunc(a.bytes/ (1024 * 1024 * 1024),2) total, 
trunc(b.bytes/ (1024 * 1024 * 1024),2) used, 
trunc(c.bytes/ (1024 * 1024 * 1024),2) free, 
trunc((b.bytes * 100) / a.bytes,2) "% USED ", 
trunc((c.bytes * 100) / a.bytes,2) "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 

SELECT tablespace_name, 

file_id, 

file_name, 

round(bytes / (1024 * 1024), 0) total_space 

FROM dba_data_files 

ORDER BY tablespace_name; 

6.查看表空間中的對象

COLUMN segment_name  format a20

select * from (

SELECT t.owner, t.segment_name,t.segment_type,

trunc((SUM(bytes)/1024/1024/1024),2) as SIZE_GB

From dba_segments t 

WHERE t.tablespace_name IN ('TBS_SD','TBS_SSD')

AND t.segment_type <> 'LOBSEGMENT'

GROUP BY t.owner,t.segment_name,t.segment_type

ORDER BY SUM(bytes) desc

) where rownum <= 20;

SELECT t.owner, t.segment_name,t.segment_type,

trunc((SUM(bytes)/1024/1024/1024),2) as SIZE_GB

From dba_segments t 

WHERE t.segment_name = &table_name

AND t.segment_type <> 'LOBSEGMENT'

GROUP BY t.owner,t.segment_name,t.segment_type

ORDER BY SUM(bytes) desc

7.查看正在執行的SQL

select a.terminal,a.username,b.SQL_FULLTEXT

from v$session a, v$sqlarea b 

where a.sql_address = b.address 

           and a.status = 'ACTIVE';

8.Interval分區表

年:INTERVAL (NUMTOYMINTERVAL(1,'year')

月:INTERVAL (NUMTOYMINTERVAL(1,’month’)

周:INTERVAL ( NUMTODSINTERVAL (7, 'day') )

日:INTERVAL ( NUMTODSINTERVAL (1, 'day') )

numtodsinterval(<x>,<c>) ,x是一個數字,c是一個字符串,
表明x的單位,這個函數把x轉為interval day to second數據類型
常用的單位有 ('day','hour','minute','second')

NUMTOYMINTERVAL(1, 'YEAR') 一年

NUMTOYMINTERVAL(1, 'MONTH') 一個月

NUMTODSINTERVAL(1, 'DAY') 一天

NUMTODSINTERVAL(1, 'HOUR') 一小時

NUMTODSINTERVAL(1, 'MINUTE') 一分鐘

NUMTODSINTERVAL(1, 'SECOND') 一秒

9.查詢分區表信息

col partition_position format 999 head "Pos"

col partition_name format a10 head "Name"

col high_value format a50 head "High Value"

select partition_position, partition_name, high_value

from dba_tab_partitions

where table_name = 'T_PARTITION_SUB128' order by 1;

感謝各位的閱讀,以上就是“Oracle有什么常用腳本”的內容了,經過本文的學習后,相信大家對Oracle有什么常用腳本這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福安市| 乐平市| 涿州市| 万盛区| 景东| 平凉市| 堆龙德庆县| 靖宇县| 珲春市| 晋江市| 牡丹江市| 嘉义市| 商河县| 静乐县| 澄迈县| 嘉鱼县| 麻栗坡县| 黑山县| 丰顺县| 屯留县| 三明市| 孝感市| 奇台县| 拜城县| 龙胜| 运城市| 河北省| 庆元县| 呼伦贝尔市| 上蔡县| 彭泽县| 姜堰市| 台中市| 丹凤县| 景德镇市| 昌邑市| 封丘县| 木兰县| 金昌市| 合川市| 河北省|