CREATE PUBLIC DATABASE LINK CopydbToTransLink CONNECT TO hs_user IDENTIFIED BY hundsun USING 'COPYDB1'; linux
DROP [PUBLIC] DATABASE LINK dblink; sql
注意:你必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的權限(可用sys身份去分配),另外,在你要鏈接的數據庫上的權限. 數據庫
grant CREATE DATABASE LINK to hr; oracle
參數說明: 函數
dblink: 你所建立的database link的名字, 測試
user和password:要鏈接的數據庫的用戶名和密碼 spa
connect_string:能夠是通過Net Manager配置的(tnsnames.ora)且經測試能夠鏈接的服務名,不過也更直接用tnsnames裏的字符串:(DESCRIPTION = 日誌
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = even.oracle.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME =orcl) ) component
經過SHOW PARAMETER GLOBAL_NAMES,能夠查看到其值是FALSE或者TRUE。 對象
1、oracle數據庫
1.linux查看oracle服務啓動 ps -ef|grep pmon 其中pmon(process monitor)進程監器
關閉數據庫 sqlplus / as sysdba
shutdown immediate
啓動數據庫 sqlplus / as sysdba
startup
啓動監聽 lsnrctl start
2.查詢登陸用戶名 select * from dba_users;
鏈接數據 conn hs_user/hundsun@UF20
2、oracle數據庫函數說明
nvl(字段名,0),就是當你選出來的時候,這個字段雖然爲空,可是顯示的是0,固然這個0也能夠換成其餘東西,如:1,2,3……
DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示若是value 等於if1時,DECODE函數的結果返回then1,...,若是不等於任何一個if值,則返回else。初看一下,DECODE 只能作等於測試,但剛纔也看到了,咱們經過一些函數或計算替代value,是可使DECODE函數具有大於、小於或等於功能。
3、max函數 查詢出當前數據中最大的數據
4、備份講解
rows=n在exp中就是表示只導出表結構,而不導出數據,其中rows爲行的意思,n爲no的意思。
若是加上"full=y",將整個數據庫所有導出,須要特殊的權限(具體什麼權限沒研究過),通常用system用戶就足夠了,普通用戶是不能夠的。
查看錶空間大小及相關的sql
一、查看錶空間的名稱及大小
SQl > SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;
二、查看錶空間物理文件的名稱及大小
SQl > SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;
三、查看回滾段名稱及大小
SQl > SELECT segment_name, tablespace_name, r.status, (initial_extent / 1024) initialextent, (next_extent / 1024) nextextent, max_extents, v.curext curextent FROM dba_rollback_segs r, v$rollstat v WHERE r.segment_id = v.usn(+) ORDER BY segment_name;
四、查看控制文件
SQl > SELECT NAME FROM v$controlfile;
五、查看日誌文件
SELECT MEMBER FROM v$logfile;
六、查看錶空間的使用狀況
SQl > SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name;
SQl > SELECT a.tablespace_name, a.bytes total, b.bytes used, c.bytes free,(b.bytes * 100) / a.bytes "% USED ", (c.bytes * 100) / a.bytes "% 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;
七、查看數據庫庫對象
SQl > SELECT owner, object_type, status, COUNT(*) count# FROM all_objects GROUP BY owner, object_type, status;
八、查看數據庫的版本
SQl > SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle';
九、查看數據庫的建立日期和歸檔方式
SQl > SELECT created, log_mode, log_mode FROM v$database;
備份表 使用create table xxx as select xxxxx...
建立表空間時候,查看以前建立的路徑 select * from dba_data_files;
查看oracle的版本 select * from v$version;
查詢一個表中重複的數據
比方說
在A表中存在一個字段"name",
並且不一樣記錄之間的"name"值有可能會相同,
如今就是須要查詢出在該表中的各記錄之間,"name"值存在重複的項;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
查詢前多少條數目使用
select...where rownum <=N order by rownum asc
oracle 變動某個字段的值爲當前值加上其它值
update A表 set a=a||'其餘值';
將多條行的值,顯示成爲一行,並使用逗號分隔 wm_concat(字段)
使用replace(字段,'要修改的字符','修改後的字符') 修改查詢字段中的字符爲想要的字符
查詢oracle用戶具備的權限 select * from dba_sys_privs;