當前位置:首頁 » 編程語言 » oraclesql復製表
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oraclesql復製表

發布時間: 2022-07-02 01:20:59

⑴ ORACLE把一張表的數據復制到另外一張表

假如原表叫aa,目標表bb

sql">DECLARE
CURSORcurIS
SELECT*FROMaa;--定義游標(aa換成你自己表名)
TYPErecISTABLEOFaa%ROWTYPE;--定義類型(這里的aa也要替換成你自己表名)
recsrec;
BEGIN
OPENcur;--打開游標
WHILE(TRUE)LOOP--循環條件
FETCHcurBULKCOLLECT--取游標里的值
INTOrecsLIMIT10000;--提交條件,每10000條提交
FORALLiIN1..recs.COUNT--這個是個計數器,用來確保提交的條數,也是循環
INSERTINTObbVALUESrecs(i);--插入目標表(bb替換成你目標表名)
COMMIT;--提交
EXITWHENcur%NOTFOUND;--游標結束條件
ENDLOOP;--停止循環
CLOSEcur;--關閉游標
END;

這個速度是最快的,10W數據不到1秒

⑵ oracle中如何將數據從一個表復制到另一個表(僅復制其中某些欄位)

insert into 新表(欄位1,欄位2,欄位3) select 欄位1,欄位2,欄位3 from 舊表,commit;確定新表裡沒被插入的欄位有默認值或者不為空,否則報錯;現在在另一個表中建一個欄位(null),然後在企業管理器里用數據導出,把其他欄位的鉤選空,就那個要復制的欄位,這樣導出就可以了,只不過源資料庫和目標資料庫是同一個資料庫而已。

⑶ oracle怎麼復製表以及表中數據

可用如下方法復制:

如果新表不存在:

比如有一張表叫test,現在要復製表結構及表內數據,可執行代碼:

createtabletestasselect*fromtest;

這樣就把表結構連同數據一起復制了。

如果表存在,可用以下代碼:

insertintotest1select*fromtest;
commit;

⑷ Oracle SQL怎麼把一個表的部分數據復制到相同表結構的新表中

用insert into select,比如
insert into a(a,b,c) select a,b,c from b where a>=100

⑸ 如何將ORACLE資料庫的表內容復制到SQL Server資料庫中

假設要將SQL Server中的Northwind資料庫中的Procts表導出到Oracle的Scott用戶 首先需要有安裝SQL Server企業版 1.打開工具: 開始->程序-> 導入和SQL Server數據導出數據 2.下一步,選擇數據源 [數據源]選擇「用於SQL Server的Microsoft OLE DB提供程序」,這應該是預設值。 [伺服器]選擇要導出數據的伺服器,如果是本機,選擇(local) [資料庫]選擇要導出的數據所在的庫,這里選擇Northwind 3.下一步,選擇目的 [目的]選擇Microsoft ODBC for Oracle [DSN]選擇用戶/系統DSN一項,然後在下拉列表框中找一個已經連接到了Scott用戶的DSN名稱。 如果下拉列表中沒有,點下拉列表框右側的[新建],出現創建新數據源界面。 接下來選擇系統數據源,下一步,在驅動程序列表中選擇Microsoft ODBC for Oracle 下一步,完成,出現Microsoft ODBC for Oracle安裝界面 [數據源名稱]隨便輸入,比如sss [說明]可以不填 [用戶名稱]填入要SQL Server數據導出到的Oracle用戶名稱,這里是scott [伺服器]填入要連接到Oracle伺服器所使用的服務名,比方說使用sqlplus scott/tiger@server1可以連接到資料庫,那麼這里就填入server1。如果本機就是伺服器,使用sqlplus scott/tiger即可連接到資料庫,這里空著不填即可。 這樣就創建好了一個數據源sss,保證下拉列表框中選擇了sss一項。 [用戶名]填入SQL Server數據導出到的Oracle用戶名稱,這里是scott [密碼]填入SQL Server數據導出到的Oracle用戶使用的密碼,這里是tiger 4.下一步,指定表復制或查詢 如果要導出的內容是整個表,選擇[從源資料庫復製表和視圖] 如果要導出的內容是表的一部分列,行,可以選擇[用一條查詢指定要傳輸的數據],這時需要寫出一個查詢語句 這里選擇第一項[從源資料庫復製表和視圖] 5.下一步,選擇源表和視圖 點中要導出的表Procts一行的復選框,目的、轉換兩欄就會出現內容。 目的可以用來選擇表名。轉換可以用來修改列的數據類型或是整個建表的SQL語句 6.下一步,保存、調度和復制包 選中立即運行 7.下一步,正在完成DTS導入/導出向導 8.完成 提示「成功地將n個表從Microsoft SQLServer復制到了Oracle」 9.完成,關閉導入導出程序 注意:因為oracle的表名都是大寫的,而SQL的表可能是大小混寫的,所以導入後在oracle里查不到該表,比如這個Procts表在oracle里查詢就應該寫成select * from scott."Procts";為了方便查詢可以通過批量修改表名為大寫以便後面導數據的工作。

⑹ oracle資料庫怎麼復制數據

你是要復制出來還是復制到另外一個表結構:

復制的話直接sql語句 :1. 復製表結構及其數據: create table table_name_new as select * from table_name_old
2. 只復製表結構: create table table_name_new as select * from table_name_old where 1=2; 或者: create table table_name_new like table_name_old
3. 只復製表數據:如果兩個表結構一樣:insert into table_name_new select * from table_name_old 如果兩個表結構不一樣:insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

導出來的話指令不寫了、直接網路就有了。

⑺ oracle 中怎麼把一個表中的數據完全復制到另外一個表

不同的資料庫語法不同(SQL Server和Oracle為例),且復制包括目標表已存在和目標表不存在的情況,分別回答:
SQL Server中,如果目標表存在:

insert into 目標表 select * from 原表;

SQL Server中,,如果目標表不存在:

select * into 目標表 from 原表;

Oracle中,如果目標表存在:

insert into 目標表 select * from 原表;
commit;

Oracle中,如果目標表不存在:

create table 目標表 as select * from 原表;

⑻ Oracle如何復製表的sql語句

以及如何復制相關表的結構又復製表中的數據sql。以下就是相關內容的具體介紹,望你瀏覽完以下的內容會有所收獲。如下,表a是資料庫中已經存在的表,b是准備根據表a進行復制創建的表:1、只復製表結構的sqlcreate?table?b?as?select?*?from?a?where?11? 以上語句雖然能夠很容易的根據a表結構復制創建b表,但是a表的索引等卻復制不了,需要在b中手動建立。5、insert into 會將查詢結果保存到已經存在的表中insert?into?t2(column1,?column2,?....)

⑼ 在oracle中, 怎樣復製表中的部分數據,是部分哦。

復制到 另外一張表上去么?

假設 源表 A ( a1, a2, a3 ) 有 100行數據 (a1 = 1 到 100)

CREATE TABLE B AS
SELECT a1, a2 FROM A WHERE a1 <= 50;

上面的 SQL, 就是復制 A 表的 部分行 (表有100行, 只復制 50行), 部分列 (表有3列, 只復制2列), 到 B 表中。