假設原來的表是test1
要寫到的表是test2test1的欄位為
a
b
ctest2的欄位為
d
e
f
其中a和d對應
b和e對應
c和f對應先把要寫到的表清掉,執行如下語句:truncate
table
test2;然後把test1表的數據導入到test2表中,執行如下語句:insert
into
test2select
*
from
test1;
2. oracle如何查看dblink的代碼,就如下圖中的類似的
查詢方法:
1、執行select * from dba_db_links;語句。
2、在PL/sql中,在左邊瀏覽器中點擊database links就可以看到資料庫鏈路了。
創建Create database link語句:
create public database link 鏈路名 connect to 用戶 identified by 口令 using '連接字元串';
3. oracle 數據鏈路 一段時間後不正常怎麼解決
可能IIS版本問題導致
4. oracle里修改owner為public的鏈路
重新創建一個dblink
5. oracle 資料庫鏈路刪除
delete from BANKCONFIG where CODE='WO' and ADDRESS='ABC';
只要where後面確保只有這一條就可以刪除
6. oracle 在資料庫中 如何查看 對象(表、視圖、序列號、同義詞、資料庫鏈路、存儲過程、函數)名
你好的!
select*fromdba_objects;
是你試試,我記得是這個視圖!
望採納!
7. oracle數據鏈路突然不能用
千鋒扣丁學堂IT為您解答:
數據鏈路(link)
是一個在分布式資料庫中用來表示到一個遠程資料庫的連接路徑的資料庫對象,用來方便地直接調用遠程資料庫中各種對象。
編輯$ORACLE_HOME/network/admin/tnsnames.ora
abc =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PROT =1521))
(CONNECT_DATA =
(SERVICE = DEDICATED)
(SERVICE_NAME = ora10)
)
)
配置遠程資料庫連接標示符,也可以oracle用戶登錄後,用netca通過圖形界面工具配置。
$sqlplus kitty/redhat@abc 測試連接遠程資料庫。
*這種方法,必須要知道遠程資料庫的用戶名和密碼,並且通過這個用戶進行對遠程資料庫進行訪問時,許可權只有kitty用戶在遠程資料庫的許可權。
>創建公共鏈路(public database link)
在sqlplus字元界面創建公共資料庫鏈路,這樣在本地切換用戶後,仍可通過資料庫鏈路對遠程資料庫進行訪問,當然許可權只有創建link時remote database指定用戶的許可權。
$sqlplus / as sysdba
SQL>create public database link linkabc connect to kitty identified by 「redhat」 using 『abc』;
這是建立資料庫鏈路,用遠程用戶kitty/redhat通過tnsnames.ora定義的abc描述符。
SQL>select * from III@linkabc; 查詢遠程資料庫的表
SQL>delete from III@linkabc where n=1; 刪除遠程數據的表內容
*注意,DDL操作是不能通過數據鏈路進行操作的,例如create table 。
Select * from dba_db_links; 查詢資料庫鏈路信息
Drop public database link linkabc; 刪除創建的資料庫鏈路
>使用同義詞(synonym)隱藏鏈路信息
同義詞是為資料庫對象或其他同義詞指定的別名,公用同義詞可被資料庫中所有用戶存取,專用同義詞僅能被指定用戶及其他被授權的用戶存取。
同義詞的特點:
可屏蔽對象的名字和其所有者;
為分布式資料庫的遠程對象提供位置透明性;
為用戶簡化SQL語句。
Create table kitty.test (n number);
Create table test (n number);
Select * from test; 系統中有兩個test表,分別是sys和kitty用戶的
Select * from kitty.test;
Create public synonym ktest fro kitty.test; 為kitty.test創建同義詞,屏蔽掉用戶信息
Select * from ktest;
*注意須先有目標表的訪問許可權,才能通過該目標表上建立的公共同義詞訪問該目標表,此處sys用戶先有kitty.test的訪問許可權,故可通過ktest訪問該表,而john用戶則不行。
Create public synonym rtest for test@linkabc; 對遠程表建立同義詞屏蔽數據鏈路信息。
Select * from dba_synonyms where synonym_name=』KTEST』;
Select * from dba_synonyms where synonym_name=』RTEST』; 查詢系統中指定同義詞的定義Drop public synonym ktest; 刪除同義詞
8. 煩請達人介紹oracle中所有DBA_ , ALL_ , USER_開頭的視圖。
DBA視圖示例如下:
dba_data_files
◆關於資料庫文件的信息
dba_db_links
◆資料庫中的所有資料庫鏈路
dba_extents
◆資料庫中包括所有分區
dba_free_space
◆所有表空間中自由分區
dba_indexes
◆資料庫中所有索引的描述
dba_ind_columns
◆在所有表及聚族上壓縮索引的列
dba_objects
◆資料庫中所有的對象
dba_rollback_segs
◆回滾段的描述
dba_segments
◆為所有資料庫段分配的存儲空間
dba_sequences
◆資料庫中所有順序書的描述
dba_synonyms
◆資料庫中所有同義詞
dba_tables
◆資料庫中所有表的描述
dba_tablespaces
◆資料庫中所有表空間的描述
dba_tab_columns
◆所有表描述、視圖及聚族的列
dba_tab_grants
◆資料庫中對象所授的許可權
dba_tab_privs
◆資料庫中對象所授的許可權
dba_ts_quotas
◆所有用戶表空間限額
dba_users
◆關於資料庫的所有用戶信息
dba_views
◆資料庫中所有視圖
視圖:USER_VIEWS
通過USER_VIEWS 數據字典視圖,可以訪問視圖的基本查詢,USER_VIEWS 數據字典視圖包含10 列,其中主要的3 列如下:
View_Name 視圖名
Text_Length 視圖的基本查詢的長度,以字元為單位
Text 視圖使用的查詢
其他列主要與對象視圖和版本有關,稍後將在本節介紹。
注意:
本節只適用於傳統視圖。對於物化視圖,詳細內容見45.9 節。
Text 列的數據類型為LONG。當通過SQL*Plus 查詢USER_VIEWS 視圖時,這可能會產生問題,因為SQL*Plus 會截斷LONG 數據。但是,截斷的位置可以通過set long 命令改變。USER_VIEWS 視圖提供恰當設置LONG 截斷點的機制,下面的示例將介紹這個機制。
Text_Length 列顯示視圖的查詢的長度。因此,SQL*Plus 的LONG 截斷點必須為一個等於或大於視圖的Text_Length 值的值。例如,下面的程序清單顯示了View_Name 列為AGING、Text_Length 列為355 的視圖。
select View_Name, Text_Length from USER_VIEWS where View_Name = 'AGING'; View_Name Text_Length ---------------- ------------- AGING 355 由於該視圖的文本長度為355 個字元,因此可以用set long 命令將LONG 截斷點至少增加到 355(默認值為80),以查看視圖的查詢的全部文本。
set long 355 然後,可以查詢USER_VIEWS 視圖,以獲得視圖的Text 列,使用的查詢如下面的程序清單所示:
select Text from USER_VIEWS where View_Name = 'AGING'; 如果沒有使用set long 命令,則輸出結果將截斷為80 個字元,並且沒有任何消息說明為什麼會截斷。在查詢其他視圖前,應當重新檢查視圖的Text_Length 值。
注意:
可以從USER_TAB_COLUMNS 視圖中查詢視圖的列定義,也可以用該視圖查詢表的列定義。
如果在視圖中使用了列別名,並且列別名是視圖的查詢的一部分,那麼視圖信息的數據字典查詢將得以簡化。由於該視圖查詢的整個文本顯示在USER_VIEWS 視圖中,因此也將顯示列別名。
可以使用下面的格式創建視圖:
create view NEWSPAPER_VIEW (SomeFeature, SomeSection) as select Feature, Section from NEWSPAPER; 在create view 命令的開頭部分列出的列名從查詢中刪除了列別名,從而防止通過 USER_VIEWS 視圖查看它們。查看視圖的列名的唯一方法是查詢USER_TAB_COLUMNS 視圖。如果列名在查詢語句中, 則對於該查詢和列名來說, 只需要查詢一個數據字典視圖(USER_VIEWS)即可。
例如,已知上例中創建的NEWSPAPER_VIEW 視圖,如果查詢USER_VIEWS 視圖,就會看到:
select Text from USER_VIEWS where View_Name ='NEWSPAPER_VIEW'; TEXT --------------------------------------- select Feature, Section from NEWSPAPER 此查詢沒有顯示用戶賦予的新列名,因為沒有將這些列名作為該視圖查詢的一部分。為使這些列名顯示在USER_VIEWS 視圖中,可以在該視圖的查詢中添加它們,以作為列別名:
create view NEWSPAPER_VIEW as select Feature SomeFeature, Section SomeSection from NEWSPAPER; 現在,如果查詢USER_VIEWS 視圖,則列別名將作為視圖的查詢文本的一部分顯示出來:
select Text from USER_VIEWS where View_Name ='NEWSPAPER_VIEW'; TEXT ----------------------------------------------- select Feature SomeFeature, Section SomeSection from NEWSPAPER 為了支持對象視圖,USER_VIEWS 視圖包含下面的列:
Type_Text 該類型視圖的type 子句
Type_Text_Length 該類型視圖的type 子句的長度
OID_Text 該類型視圖的WITH OID 子句
OID_Text_Length 該類型視圖的WITH OID 子句的長度
View_Type_Owner 該類型視圖的視圖類型的所有者
View_Type 視圖類型
關於對象視圖和類型的詳細信息,請參閱第38 章和第41 章。
ALL_VIEWS 視圖列出了用戶所擁有的全部視圖以及授權用戶(直接授權或者授權給PUBLIC)訪問的視圖。由於 ALL_VIEWS 視圖包含多個用戶的項,因此,除了本節前面列出的列外,它還包含一個Owner 列。DBA_VIEWS 視圖列出了資料庫中的全部視圖,DBA_VIEWS 視圖與ALL_VIEWS 視圖有相同的列定義。