当前位置:首页 » 编程语言 » 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;

热点内容
轻应用缓存 发布:2025-05-18 00:31:02 浏览:251
鸟存储空气 发布:2025-05-18 00:20:24 浏览:201
linux刻录iso 发布:2025-05-18 00:16:15 浏览:663
php动态参数 发布:2025-05-18 00:12:05 浏览:425
安卓应用上传 发布:2025-05-18 00:11:57 浏览:803
数对的算法 发布:2025-05-18 00:11:02 浏览:382
linuxwhile 发布:2025-05-18 00:10:08 浏览:144
xpftp外网 发布:2025-05-17 23:58:11 浏览:386
如何评价一个服务器的性能 发布:2025-05-17 23:40:53 浏览:271
淘宝客适合什么服务器 发布:2025-05-17 23:39:26 浏览:614