當前位置:首頁 » 編程語言 » oracle導入數據sql

oracle導入數據sql

發布時間: 2023-06-04 05:07:22

❶ Oracle-sqlplus導入sql文件

將一張表的數據插入到另一張表insert into table2 select * from table1;如果表不存在可以使用 create table table2 as select * from table1; 但是如果要插入的數據量比較大,用命令好使些。

使用PLSQL Developer導入insert語句,數據量過大會死掉,所以直接使用命令行的方式導入insert語句

 命令行進入sqlplus: sqlplus 用戶名/密碼@127.0.0.1:1521/tiger ( sqlplus test_name/[email protected]:1521/tiger )

 sql>@full_path/test.sql; 例:sql>@D:/test.sql;

test.sql 裡面最後加上一個commit;

--參考http://blog.csdn.net/yin_jw/article/details/38894905

❷ 數據批量sql*load導入Oracle資料庫

SQL*LOADER是大型數據

倉庫選擇使用的載入方法 因為它提供了最快速的途徑(DIRECT PARALLEL) 現在 我們拋開其理論不談 用實例來使

您快速掌握SQL*LOADER的使用方法

首先 我們認識一下SQL*LOADER

在NT下 SQL*LOADER的命令為SQLLDR 在UNIX下一般為sqlldr/sqlload

如執行 d:oracle>sqlldr

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

用法: SQLLOAD 關鍵字 = 值 [ keyword=value ]

有效的關鍵字:

userid ORACLE username/password

control Control file name

log Log file name

bad Bad file name

data Data file name

discard Discard file name

discardmax Number of discards to allow (全部默認)

skip Number of logical records to skip (默認 )

load Number of logical records to load (全部默認)

errors Number of errors to allow (默認 )

rows Number of rows in conventional path bind array or beeen direct p

ath data saves

(默認: 常規路徑 所有直接路徑)

bindsize Size of conventional path bind array in bytes(默認 )

silent Supdivss messages ring run (header feedback errors discards part

扮伏itions)

鬧坦direct use direct path液缺桐 (默認FALSE)

parfile parameter file: name of file that contains parameter specification

s

parallel do parallel load (默認FALSE)

file File to allocate extents from

skip_unusable_indexes disallow/allow unusable indexes or index partitions(默認FALSE)

skip_index_maintenance do not maintain indexes mark affected indexes as unusable(默認FALSE)

mit_discontinued mit loaded rows when load is discontinued(默認FALSE)

readsize Size of Read buffer (默認 )

PLEASE NOTE: 命令行參數可以由位置或關鍵字指定

前者的例子是 sqlload scott/tiger foo ;

後者的例子是 sqlload control=foo userid=scott/tiger

位置指定參數的時間必須早於但不可遲於由關鍵字指定的參數 例如

SQLLOAD SCott/tiger control=foo logfile=log

但 不允許 sqlload scott/tiger control=foo log

即使允許參數 log 的位置正確

d:oracle>

我們可以從中看到一些基本的幫助信息 這里 我用到的是中文的WIN ADVSERVER

我們知道 SQL*LOADER只能導入純文本 所以我們現在開始以實例來講解其用法

一 已存在數據源result csv 欲倒入ORACLE中FANCY用戶下

result csv內容

默認 Web 站點 : : RUNNING

other : : STOPPED

third : : RUNNING

從中 我們看出 列 分別以逗號分隔 為變長字元串

二 制定控制文件result ctl

result ctl內容

load data

infile result csv

into table resultxt

(resultid char terminated by

website char terminated by

ipport char terminated by

status char terminated by whitespace)

說明

infile指數據源文件這里我們省略了默認的discardfile result dsc badfile result bad

into table resultxt 默認是INSERT 也可以into table resultxt APPEND為追加方式 或REPLACE

terminated by 指用逗號分隔

terminated by whitespace結尾以空白分隔

三 此時我們執行載入

D:>sqlldr userid=fancy/testpass control=result ctl log=resulthis out

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

SQL*Loader : 在描述表RESULTXT時出現錯誤

ORA : 對象 RESULTXT 不存在

提示出錯 因為資料庫沒有對應的表

四 在資料庫建立表

create table resultxt

(resultid varchar ( )

website varchar ( )

ipport varchar ( )

status varchar ( ))

/

五 重新執行載入

D:>sqlldr userid=fancy/k i l l control=result ctl log=resulthis out

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

達到提交點 邏輯記錄計數

達到提交點 邏輯記錄計數

已經成功!我們可以通過日誌文件來分析其過程 resulthis out內容如下

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

控制文件: result ctl

數據文件: result csv

錯誤文件: result bad

廢棄文件: 未作指定

:

(可廢棄所有記錄)

裝載數: ALL

跳過數:

允許的錯誤:

綁定數組: 行 最大 位元組

繼續: 未作指定

所用路徑: 常規

表RESULTXT

已載入從每個邏輯記錄

插入選項對此表INSERT生效

列名 位置 長度 中止 包裝數據類型

RESULTID FIRST * CHARACTER

WEBSITE NEXT * CHARACTER

IPPORT NEXT * CHARACTER

STATUS NEXT * WHT CHARACTER

表RESULTXT:

行載入成功

由於數據錯誤 行沒有載入

由於所有 WHEN 子句失敗 行沒有載入

由於所有欄位都為空的 行沒有載入

為結合數組分配的空間: 位元組( 行)

除綁定數組外的內存空間分配: 位元組

跳過的邏輯記錄總數:

讀取的邏輯記錄總數:

拒絕的邏輯記錄總數:

廢棄的邏輯記錄總數:

從星期二 月 : : 開始運行

在星期二 月 : : 處運行結束

經過時間為: : :

CPU 時間為: : : (可

六 並發操作

sqlldr userid=/ control=result ctl direct=true parallel=true

sqlldr userid=/ control=result ctl direct=true parallel=true

sqlldr userid=/ control=result ctl direct=true parallel=true

當載入大量數據時(大約超過 GB) 最好抑制日誌的產生

SQL>ALTER TABLE RESULTXT nologging;

這樣不產生REDOLOG 可以提高效率 然後在CONTROL文件中load data上面加一行 unrecoverable

此選項必須要與DIRECT共同應用

在並發操作時 ORACLE聲稱可以達到每小時處理 GB數據的能力!其實 估計能到 - G就算不錯了 開始可用結構

相同的文件 但只有少量數據 成功後開始載入大量數據 這樣可以避免時間的浪費

我的示例

一 在資料庫建立表格weather如下

create table weather(

outlook varchar( )

temperature float

humidity float

windy varchar( )

play varchar( )

)

二 在F盤建立兩個文件 分別如下

# result ctl內容如下

load data

infile result csv

into table weather

(outlook char terminated by

temperature char terminated by

humidity char terminated by

windy char terminated by

play char terminated by

)

# result csv內容如下

sunny FALSE no

sunny TRUE no

overcast FALSE yes

rainy FALSE yes

rainy FALSE yes

rainy TRUE no

overcast TRUE yes

sunny FALSE no

sunny FALSE yes

rainy FALSE yes

sunny TRUE yes

overcast TRUE yes

overcast FALSE yes

rainy TRUE no

三 命令行下執行

F:>sqlldr userid=cq *** /ctbujx control=result ctl

lishixin/Article/program/Oracle/201311/18602

❸ oracle sqldeveloper 如何從資料庫導入/導出數據

使用Oracle
SqlDeveloper導入導出資料庫中數據的步驟是:
1、打開Oracle
SqlDeveloper
軟體;
2、使用有導入導出許可權的用戶登錄資料庫;
3、選擇工具欄中的Tools菜單中的Database
Export選項;
即可按照提示進行資料庫導入導出操作了

❹ oracle怎樣導入*.sql文件

oracle導入*.sql文件只需要在Oracle伺服器的命令行里sqlplus / as sysdba命令可以登陸到sqlplus命令行里。
然後比如是C:/a.sql,那麼就執行@C:/a.sql,然後跑完後這個a.sql就被導入進來了。

❺ sql oracle怎麼導入數據

在我們使用SQL Server資料庫的過程中,有時需要將SQL Server數據導出,導入到其他的資料庫中,比如導入到Oracle中。

假設要將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";為了方便查詢可以通過批量修改表名為大寫以便後面導數據的工作。

---導完數據後執行下面語句,生成把表名修改成大寫的操作

select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '|| upper(table_name)||';' from user_tab_comments;

把生成的文件執行即可把此用戶下的所有表名修改成大寫。

❻ oracle導入sql文件

1. 獲取幫助

imp help=y
2. 導入一個完整資料庫

imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 導入一個或一組指定用戶所屬的全部表、索引和其他對象

imp system/manager file=seapark log=seapark fromuser=seapark
imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 將一個用戶所屬的數據導入另一個用戶

imp system/manager file=tank log=tank fromuser=seapark touser=seapark_
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
5. 導入一個表

imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 從多個文件導入

imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用參數文件

imp system/manager parfile=bible_tables.par
bible_tables.par參數文件:

#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_ file=seapark log=seapark_import
8. 增量導入

imp system./manager inctype= RECTORE FULL=Y FILE=A
-------------------------------------------------------------------------------------------------------------------------------------------

1. 獲取幫助
exp help=y

2. 導出一個完整資料庫
exp system/manager file=bible_db log=dible_db full=y

3. 導出資料庫定義而不導出數據
exp system/manager file=bible_db log=dible_db full=y rows=n

4. 導出一個或一組指定用戶所屬的全部表、索引和其他對象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在導出用戶時,盡管已經得到了這個用戶的所有對象,但是還是不能得到這些對象引用的任何同義詞。解決方法是用以下的SQL*Plus命令創建一個腳本文件,運行這個腳本文件可以獲得一個重建seapark所屬對象的全部公共同義詞的可執行腳本,然後在目標資料庫上運行該腳本就可重建同義詞了。

SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seapark.syn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF

5. 導出一個或多個指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)

6. 估計導出文件的大小
全部表總位元組數:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';

seapark用戶所屬表的總位元組數:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';

seapark用戶下的aquatic_animal表的位元組數:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';

7. 導出表數據的子集(oracle8i以上)
NT系統:

exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
file=fruit log=fruit
UNIX系統:

exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type
file=fruit log=fruit

8. 用多個文件分割一個導出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck

9. 使用參數文件
exp system/manager parfile=bible_tables.par
bible_tables.par參數文件:

#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)

10. 增量導出
「完全」增量導出(complete),即備份整個資料庫
exp system/manager inctype=complete file=990702.dmp
「增量型」增量導出(incremental),即備份上一次備份後改變的數據
exp system/manager inctype=incremental file=990702.dmp
「累計型」增量導出(cumulative),即備份上一次「完全」導出之後改變的數據
exp system/manager inctype=cumulative file=990702.dmp

imp boss/boss@scott file=jkluio.dmp log=jkluio.log fromuser=boss touser=boss commit=y;

exp boss/123qwe!@CBGLDB file=boss.dmp log=boss.log owner=boss;

熱點內容
定義dns伺服器的ip 發布:2025-05-17 20:32:37 瀏覽:952
android判斷圖片 發布:2025-05-17 20:32:33 瀏覽:832
安卓12什麼時候適配小米 發布:2025-05-17 20:31:47 瀏覽:69
c語言字元串初始化 發布:2025-05-17 20:18:43 瀏覽:36
安卓融e聯推送需要什麼許可權 發布:2025-05-17 20:18:39 瀏覽:268
我的世界無限武魂伺服器 發布:2025-05-17 20:17:09 瀏覽:371
安卓手游腳本語言 發布:2025-05-17 19:53:07 瀏覽:21
找圈演算法 發布:2025-05-17 19:49:19 瀏覽:410
資料庫的存取方法 發布:2025-05-17 19:48:36 瀏覽:125
androidapp測試 發布:2025-05-17 19:48:19 瀏覽:389