我要从Oracle数据库里边向sql里导入数据,如何在SQL的服务器上导入Oracle的数据具

我要从Oracle数据库里边向sql里导入数据,如何在SQL的服务器上导入Oracle的数据具,第1张

--用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包版本”对话框,可以打开以前的版本进行编辑或者对它们进行清理。如果想恢复到某个以前的版本,可以打开该版本进行编辑,然后

--使用“包”->“另存为”菜单命令以一个新名字保存该包

你的意思是要用管理员用户新建普通用户,然后将相应的dmp数据文件导入到这个用户下,是吗?

新建脚本语句:

-----------------SYS创建用户

CREATE USER dandeliondshtest PROFILE "DEFAULT" IDENTIFIED BY dandeliondshtest DEFAULT

TABLESPACE "USERS" TEMPORARY

TABLESPACE "TEMP" ACCOUNT UNLOCK;

GRANT SELECT ON "SYS""V_$SESSION" TO dandeliondshtest;

GRANT "CONNECT" TO dandeliondshtest;

GRANT "DBA" TO dandeliondshtest;

GRANT "RESOURCE" TO dandeliondshtest;

GRANT CREATE ANY sequence TO dandeliondshtest;

CREATE USER dandelionids IDENTIFIED BY dandelionids

grant create session to dandelionids;--授予zhangsan用户创建session的权限,即登陆权限

grant unlimited tablespace to dandelionids;--授予zhangsan用户使用表空间的权限

grant create table to dandelionids;--授予创建表的权限

grant drop table to dandelionids;--授予删除表的权限

导入dmp文件是在dos命令窗口中来执行的,impdp 用户名/密码@IP/pdborcl dumpfile=bak_dir:文件名DMP nologfile=Y (单击回车)

看你上面说的方法应该是用ODBC,数据源是指你配置的oracle访问名,首先你要安装有oracle客户端(如果你是在安装了oracle数据库的机器上 *** 作就不需要再安装oracle客户端了),然后用Net

Configuration

Assistant配置好你要访问的oracle数据库的访问名。该访问名就是上面你要填的数据源。你可以到oracle安装目录下,找到tnsnamesora文件,里面记录了你配置的oracle数据库访问名。比如我的数据库是10G的,该文件在目录D:\oracle\product\1020\db_1\NETWORK\ADMIN

\tnsnamesora

里面你可以找到类似这样的东西

你配的访问名

=

(DESCRIPTION

=

(ADDRESS

=

(PROTOCOL

=

TCP)(HOST

=

数据库的IP地址或机器名)(PORT

=

1521))

(CONNECT_DATA

=

(SERVER

=

DEDICATED)

(SERVICE_NAME

=

数据库的SID)

)

)

使用备份语句把表备份,然后在导入另一个库

建议一个dblink,然后使用创建表,然后根据dblink把数据导入即可

create table A  as

select from A@dblink;

导入数据库备份文件,打开pl/sql

developer

,点击tool(工具)----》import

然后把你的备份文件导入就可以了,刷新tables

,就可以看到表了

sql数据,这个太笼统了。

一般来说,要导入的数据有这么几类:

1、txt之类的,可以用toad或plsql的导入工具来实现。也可以用sqlldr命令来做。

2、dmp文件(就是之前在其他oracle数据库导出的文件),则用imp命令导入。

以上就是关于我要从Oracle数据库里边向sql里导入数据,如何在SQL的服务器上导入Oracle的数据具全部的内容,包括:我要从Oracle数据库里边向sql里导入数据,如何在SQL的服务器上导入Oracle的数据具、oracle 12c怎样新建用户并且导入数据库,求大神给出完美解答,不胜感激、如何将Oracle数据库中的一张表导入到SqlServer中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9750570.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存