当前位置:首页 » 编程语言 » oracle导入sql表结构
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle导入sql表结构

发布时间: 2022-06-06 01:23:43

㈠ 在Oracle里面建相同的表结构,如何把sql库表的数据导入到Oracle库的表

在oracle中建个指向sql的dblink
然后select * from sql表@dblink into oracle表。
这样它可以自动生成sql表的结构,并将数据插入。

㈡ oracle中怎样把表、表空间导入或导出

Oracle 数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把 dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:\chu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\chu.dmp
imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\chu.dmp中的表table1 导入
imp system/manager@TEST file=d:\chu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp

执行示例:
F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示
Import: Release 8.1.7.0.0 - Proction on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction

经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。

附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log

㈢ 怎样把oracle中数据库表结构和数据导入到mysql中啊

你可以在oracle中导出表结构成SQL文件,然后根据上面朋友说的NaviCAT premium链接到mysql 直接打开sql文件执行就可以导入了。希望其他朋友有更好的办法,也希望能帮到你

㈣ 如何将oracle数据库中的数据如何导入到sqlserver

-用DTS移植数据

--数据转换服务(Data Transformation Services,简称DTS),它可以在任意数据源之间移动数据,并在移动过程中对数据进行清洗
--DTS通常用于将数据移动到SQL Server,但实际上它可以方便地在几乎所有的数据源之间移动数据

--注意:“复制数据库向导”和“导入/导出向导”实际只是创建和执行了DTS包

--DTS设计器
--“数据转换服务”->“本地包”->新建或打开包
--“连接”:可用的连接对象
--“任务”:包含了19个关键的数据转换任务,其中最常见的是“转换数据任务”和“执行SQL任务”
--“包属性”:在DTS的设计器中选择“包”->“属性”或右键“包属性”,可以打开包属性对话框

--添加“连接”

--添加“任务”
--1、源:源可以是源连接中的一个表、视图,或者一个SQL查询
--2、目的:接收数据的表
--3、转换:对源数据列和目的数据列进行匹配或者连接。一个列转换可以是下列情形之一:
--复制列是转换中最常见的情况
--日期时间字符串、小写字符串、字串、裁剪字符串和大写串的处理全都与复制列转换类似,不同的是
--它们中的每一个都增加了某种类型的数据转换功能
--读文件和写文件分别用于将数据导入或者导出到源列中所指定的文件
--对于包含有逻辑或者数据查找的复杂转换,需要使用ActiveX脚本实现
--4、查找:仅仅把数据从一个表移动到另外一个表是一项很简单的任务。但在很多情况下我们都必须在转换的过程中对数据进行修改
--转换任务可以调用查找脚本找出需要的值来替换源数据集中的值
--a、定义一个查找,“名称”:需要替换的源数据中的列名;“连接”:目的驱动;“高速缓存”:设置DTS执行时可以缓存的查询结果数量
--b、“查询”:可以打开查询设计器的一个变种,通过它可以为任意的连接定义有效的查询。该查询应当以源列表中的值为输入(参数),
--并返回相应的替代它的值以便插入目的表。输入的参数用‘?’来表示,而select语句所返回的值就是用于在目的表中替代输入参数的值
--下面的例子从源列中读出顾客类型的名字,并用查询所返回的CustomerTypeID来替代它
select customertypeid from customertype where (name = ?)
--为什么要这样做呢?源表中的customertype列为字符,而目的表中的customertypeid为整型,所以需要根据源表中的customertype(字符)
--从表customertype中得到相应的customertypeid以便插入到目的表的customertypeid(整数)中
--c、Active转换?
/*'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************

' Copy each source column to the destination column
Function Main()
DTSDestination("CustomerTypeID") = DTSLookups("CustomerType").Execute(DTSSource("CustomerType"))
Main = DTSTransformStat_OK
End Function
*/
--5、转换选项:

--工作流控制
--DTS只包含几个任务的情况在实际中是很少见的。绝大多数DTS包都要执行数十个任务,而这些任务之间又具有错综复杂的关系。因此,执行
--顺序对于防止错误的发生至关重要。
--DTS通过以下选项来控制工作流的执行顺序:完成时(蓝色);成功时(绿色);失败时(红色)
--如:添加任务“执行SQL任务”(用来执行SQL语句),以在执行其他任务之前删除表中的数据。则此任务为第一个执行。选中此任务和第二个
--任务,然后从“工作流”中选择需要工作流类型(如完成),就可以设定这两个任务之间的执行顺序。执行好之后作用:先执行第一个任务,
--完成后,再执行第二个任务。。
--如果要为转换数据任务设置工作流,可以选择该转换任务的源连接,右键->“工作流属性”->设置工作流

--执行DTS包

--存储和移动DTS包
--1、“包”->“保存”:保存到本地服务器上。展开企业管理器控制台树的“数据转换服务”->“本地包”,将会看到那些保存的包
--2、“包”->“另存为”:提供了其他几种可选的存储格式和选项
--SQL Server:这种方法将包保存在任何已注册的SQL Server的MSDB数据库的sysdtspackages表中。如果已经注册了相应的服务器,
--这将是最简单的把包移动到另外一个SQL Server上的办法。如果要把包移动到还没有注册的服务器上,应使用“结构花存储文件”选项
--Meta Data Services:这种高级的方法可以跟踪已经为DTS修改的数据
--结构化存储文件:这种方法能够创建可以复制到另外一个SQL Server,并且可以在另外一台服务器上打开的文件。一定要注意SQL Server
--和service pack的版本号,因为具有不同的service pack级别的SQL Server 2000实例所使用的结构化存储文件有可能是不兼容的
--要打开用结构化存储文件格式保存的包,可以在企业管理器控制台树的数据转服务节点的快捷方式菜单中选择“打开包”菜单命令
--Visual Basic文件:这个选项可以生成与SQL Server DTS包完成同样任务的VB脚本
--注意:如果已经使用“包”->“另存为”命令保存了包,“包”->“保存”命令将用上一个“另存为”命令所选择的位置和格式来保存这个包

--增量和版本
--数据转换服务还有一个很好的特性:它能够对包的变化进行管理。包的每次保存都会产生该包的一个新版本,最终就会形成该包的多个连续的版本
--如果要查看任意包所保存的各个版本,可以在企业管理器中,从本地包清单中选择一个DTS包,然后选择“操作”->“版本”菜单命令,或者从
--该包的快捷方式菜单中选择“版本”菜单。此时将会打开“DTS包版本”对话框,并显示该包的各个版本的日期和描述
--使用“DTS包版本”对话框,可以打开以前的版本进行编辑或者对它们进行清理。如果想恢复到某个以前的版本,可以打开该版本进行编辑,然后】
--使用“包”->“另存为”菜单命令以一个新名字保存该包

㈤ oracle怎样sql文件导入数据库中

 导出
导出具体的分为:导出表,导出方案,导出数据库三种方式。
导出使用exp命令来完成的,该命令常用的选项有:
userid: 用于指定执行导出操作的用户名,口令,连接字符串
tables: 用于指定执行导出操作的表
owner: 用于指定执行导出操作的方案
full=y: 用于指定执行导出操作的数据库
inctype: 用于指定执行导出操作的增量类型
rows: 用于指定执行导出操作是否要导出表中的数据
file: 用于指定导出文件名
Oracle 笔记
23

 导出表
1.导出自己的表
exp userid=scott/tiger@myoral tables=(emp,dept) file=d:\e1.dmp
2.导出其它方案的表
如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表
E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp
特别说明:在导入和导出的时候,要到oracle目录的bin目录下。
3. 导出表的结构
exp userid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n
4. 使用直接导出方式
exp userid=scott/tiger@accp tables=(emp) file=d:\e4.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。
这时需要数据库的字符集要与客户端字符集完全一致,否则会报错...
 导出方案
导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束...)和数据。并存放到文件中。
1. 导出自己的方案
exp userid=scott/tiger@myorcl owner=scott file=d:\scott.dmp
2. 导出其它方案
如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出任何方案
exp userid=system/manager@myorcl owner=(system,scott) file=d:\system.dmp
 导出数据库
导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限
增量备份(好处是第一次备份后,第二次备份就快很多了)
exp userid=system/manager@myorcl full=y inctype=complete file=d:\all.dmp
导入
 介绍
导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导
出相似,导入也分为导入表,导入方案,导入数据库三种方式。
imp常用的选项有
userid: 用于指定执行导入操作的用户名,口令,连接字符串
tables: 用于指定执行导入操作的表
formuser: 用于指定源用户
touser: 用于指定目标用户
file: 用于指定导入文件名
full=y: 用于指定执行导入整个文件
inctype: 用于指定执行导入操作的增量类型
rows: 指定是否要导入表行(数据)
ignore: 如果表存在,则只导入数据
 导入表
1. 导入自己的表
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp
2. 导入表到其它用户
要求该用户具有dba的权限,或是imp_full_database
imp userid=system/tiger@myorcl tables=(emp) file=d:\xx.dmp touser=scott
3. 导入表的结构
Oracle 笔记
24

只导入表的结构而不导入数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp rows=n
4. 导入数据
如果对象(如比表)已经存在可以只导入表的数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp ignore=y
 导入方案
导入方案是指使用import工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其它方案,要求该用户具有dba
的权限,或者imp_full_database
1. 导入自身的方案
imp userid=scott/tiger file=d:\xxx.dmp
2. 导入其它方案
要求该用户具有dba的权限
imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
 导入数据库
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp userid=system/manager full=y file=d:\xxx.dmp

㈥ oracle中怎样导入数据库文件

1、登录到要导入的数据库及用户。

2、依次点击“工具”——“导入表”。

3、输入如下命令;

imp被导入用户名/密码@实例名file=文件名.dmplog=日志.dmpfromuser=导出用户touser=导入用户

4、 输入后按回车键,等待导入完成即可。

㈦ oracle如何导入数据库更新表结构和数据

只覆盖数据的话,SELECT B.X , B.Y ,B.Z .... FROM TABLE_B B
把A里有的字段调出来插入就可以了

㈧ 怎么将oracle的数据导入sql中

不同意楼上的说法:
1.没有看清楚问题,他的意思的把oracle的数据导入到sqlserver中去,而不是oracle到oracle
2.exp里的compress=y不是管压缩的,它是管建表时的initial extents的
我觉得可以用plsqldeveloper这个工具来解决问题,因为大家都是支持标准SQL的,所以把需要倒的数据表用工具生成SQL脚本,脚本里包含表的基本结构和所要的数据,一些check和constraint就不需要了,怕sqlserver不支持,把生成的脚本拿到sqlserver中去执行。当然这个方法是比较麻烦的,但是这种跨数据库平台的迁移也就只能这么麻烦!
工具可以到网上搜,

㈨ oracle建表空间和用户,导入表结构 在线等

这样就可以
create user rzlm identified by rzlm DEFAULT TABLESPACE "rzlmdata" TEMPORARY TABLESPACE TEMP;

因为表空间的名字默认在数据库里面是大写的。所以你执行第二条语句的话, 数据库去找的是大写的 rzlmdata 表空间。

但是一般来说 不需要专门定义一个小写的表空间名。一般这样就可以

CREATE TABLESPACE rzlmdata LOGGING DATAFILE 'D:\rzlmdata.DBF' SIZE 2048M REUSE EXTENT MANAGEMENT LOCAL;
create user rzlm identified by rzlm DEFAULT TABLESPACE rzlmdata TEMPORARY TABLESPACE TEMP;