怎么将sql2005中的数据导入到oracle中,求具体步骤补助方法

如题所述

SqlServer2005导出数据到oracle

--在sqlserver下处理需要导出的数据库
1、 执行以下sql,查出所有‘float‘类型的表名和字段名,将float类型改为decimal(18,4).

select 表名=d.name,字段名=a.name,类型=b.name FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
where b.name in ('float')
order by d.name;

2、 使用下面sql语句查出MS-SQL中数据库的所有用户表中字段在ORACLE属于内部关键词的表名及字段名并修改,此修改需通知开发看是否需要修改相关程序

select 表名=d.name,字段名=a.name FROM syscolumns a
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
where a.name in ('NUMBER','LEVEL','ROW','rowNum','rows','mode') order by a.id,a.colorder

3、 查询类型为text字段并且值为空的设置为'-'否则导出时会报错误(该语句查询出一组sql语句);将查询出来的一组sql语句全部拷贝出来并全部执行。

select 'update '+ d.name +' set '+ a.name +'=''-'' where '+ a.name +' like '''''
FROM syscolumns a left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
where b.name in ('TEXT') order by d.name

4、 执行下列sql将所有数据表的列名更新为大写。

-- 修改列名大写
drop procedure change_to_decimal184
go
-- 创建存储过程
create procedure change_to_decimal184
as
-- 声明变量
declare @tableName varchar(128),
@columnName varchar(128)
-- 声明游标
declare @cursorVar Cursor
-- 给游标赋值
set @cursorVar=Cursor For
select obj.name,upper(col.name) from syscolumns col,sysobjects obj where obj.xtype='U' and obj.id=col.id;
-- 打开游标
Open @cursorVar
-- 取一条数据赋给变量
Fetch Next From @cursorVar
Into @tableName,@columnName
-- 声明执行语句变量
Declare @executeSql nvarchar(2000)

While(@@FETCH_STATUS=0)
Begin
-- 获得要执行的SQL语句
set @executeSql=N'exec sp_rename '''+@tableName+'.'+@columnName+''','''+@columnName+'''';
execute sp_executesql @stmt=@executeSql
-- 取下一条数据
Fetch Next From @cursorVar
Into @tableName,@columnName
End
-- 关闭游标
Close @cursorVar
-- 释放资源
Deallocate @cursorVar
-- 返回
Return
go
-- 执行存储过程
execute change_to_decimal184

5、 执行下列sql将所有表名大写

-- 修改表名大写
drop procedure change_to_decimal184
go
-- 创建存储过程
create procedure change_to_decimal184
as
-- 声明变量
declare @tableName varchar(128),
@uptableName varchar(128)
-- 声明游标
declare @cursorVar Cursor
-- 给游标赋值
set @cursorVar=Cursor For
select obj.name,upper(obj.name) from sysobjects obj where obj.xtype='U' and name!='dtproperties';
-- 打开游标
Open @cursorVar
-- 取一条数据赋给变量
Fetch Next From @cursorVar
Into @tableName,@uptableName
-- 声明执行语句变量
Declare @executeSql nvarchar(2000)

While(@@FETCH_STATUS=0)
Begin
-- 获得要执行的SQL语句
set @executeSql=N'exec sp_rename '''+@tableName+''','''+@uptableName+'''';
execute sp_executesql @stmt=@executeSql
-- 取下一条数据
Fetch Next From @cursorVar
Into @tableName,@uptableName
End
-- 关闭游标
Close @cursorVar
-- 释放资源
Deallocate @cursorVar
-- 返回
Return 0
go
-- 执行存储过程
execute change_to_decimal184

--在oracle下处理
1. 以system用户登录,建立表空间和用户并赋予权限
如--创建表空间

create tablespace ST10005(表空间名)
datafile 'D:\oracle\db\ST10005.ora' (数据文件存放地点 D:\oracle\db\文件夹要先存在)
size 500M
default storage
(initial 200m
next 50m
minextents 20
maxextents 500)
online;

--创建用户 (指定默认表空间 和 临时表空间 指定连接状态)

CREATE USER ST10005(用户名) PROFILE DEFAULT IDENTIFIED BY ep(密码) DEFAULT
TABLESPACE ST10005(表空间名) TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;

--为用户授权

grant connect,resource,dba to ST10005(用户名);

--用sqlserver2005自带的导入工具将数据导入到oracle
1) 在要导出的数据库上点击鼠标右键,选择“任务”》“导出数据”,
2) 依次点击下一步,在“选择数据源”页面填写相应选项,如下图
3) 在“选择目标”页,目标栏选择“oracle Provider for OLE DB”,点击属性会弹出个数据链接属性的对话框;如下图
数据源一栏填写的是用PLSQL连接时的database;用户名一栏都要用大写的;同时要选中“允许保存密码”选项。
4) 接着下一步直到选择源表和源视图,选择要导入的表,注意:一次不能选太多的表,否则会弹出一个警告,如弹出了警告(如下图),就要少选几个表,如果不弹出警告,就下一步直到完成。
5) 重复1-4步操作几次,将所有的表都导入进去。

--导入完成后,还需执行以下几步操作
1. 检查表的数目是否正确
sqlserver下执行 :
select count(*) from sysobjects obj where obj.xtype='U' and name!='dtproperties';
oracle下执行 :select count(*) from user_tables;
2. 执行sql
update CFG_MODEL_PARAM SET ORDERSQL=' ' WHERE ordersql is null;
3. 执行文件中的sql建视图
4. 执行sql建主键以及外键。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-29
用navicat 的导入导出功能
第2个回答  2012-05-29
可以在oracle建一个dblink访问sql2005数据库
第3个回答  2012-05-29
1.先把mdf导到sqlserver中
2.再从sqlserver中,导出script,生成sql文件
这个方法:右键数据库,有一个Tasks,再选Tasks里的Generate Scripts。
3.将生成的sql文件,语法稍作修改,需要修改成ORACLE识别的语法
4.把修改后的sql文件导入到oracle中。

新奇哥,我先给你一个回答啊!

如何把sqlserver2005数据库转换为oracle数据库
步骤如下:打开Sqlserver,如图选中目标数据库,右键->任务->导入数据 选择”导入数据”菜单,会出现向导,点击下一步,出现如图所示界面 这里要说明下,最好选择”MicroSoft OLE DB Provider for Oracle方式,选择另外一种方式导入数据时会报错.输入服务器名称和用户密码,测试成功后,一定要勾选”允许保存密码”...

如何把sql server数据库迁移到oracle
迁移的方法是从Sql Server已有数据库中生成出Oracle的建库脚本,然后在Oracle数据库上执行。用到的生成工具是Power Designer。1、打开PD(Power Designer简称,以下均使用PD),新建一个PDM(物理数据模型),DBMS选择Microsoft SQL Server2005,Model name起名叫做mssdb。2、通过逆向工程将现有Sql Server数据库...

SQLServer2005移植到Oracle10g经验总结
基于SQLServer 的数据导出将表结构和数据导入到SQLServer 这步中需要注意的是默认情况下SQLServer会将表和视图一起导入 在这里不要选择视图 否则导入到SQLServer 后有些视图会变成表 选择需要导入的表后基本上这步不会出现什么问题 可以完成表结构和数据的移植 基于SQLServer 的生成脚本将视图\/函数\/存储过程...

sql数据怎么转到ORACLE里
可以参考如下解决方法:1 利用某个工具将数据导出成txt文件(里面的内容类似 inset into table values();形式) 。这个步骤也有讲究。有两个方案:1) 直接从这个大表中一个id一个id的导出数据。2)先采取 create table t_idname as select * from souce_table where id=1;的形式建立15000个id表。

如何把sqlserver2005的text的数据导入到oracle的BLOB类型的字段中
如何把sqlserver2005的text的数据导入到oracle的BLOB类型的字段中 可以在SQLServer下运行:SELECT FROM msdb.dbo.MSdatatype_mappings SELECT FROM msdb.dbo.sysdatatypemappings 第一个SQL语句是看SQL转Oracle的类型对应 第二个表则更详细得显示了各个数据库系统的类型对应。

求助:怎么把SQL数据库导入到ORACLE中。
1.打开工具:开始->程序->Microsoft SQLServer->导入和SQL Server数据导出数据 2.下一步,选择数据源 [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。[服务器]选择要导出数据的服务器,如果是本机,选择(local)[数据库]选择要导出的数据所在的库,这里选择Northwind 3....

把sql中有用的数据查询出来添加到oracle
在我看来可以有如下几种方法:1、写一个简单的程序,先从sql中查出来,然后在添加或是更新到oracle中。2、我的sql server有个可以和oracle连接的过程,实现互访。你可以网上查一下。3、使用sql server的导出工具导出成excel或是格式化的文件,在导出时使用sql语句将你需要的数据导出后再使用 developer...

...和导出向导:将sqlserver中的数据导入到oracle数据库报错
从错误中可以看出,Microsoft OLE DB Provider for Oracle 不支持 Oracle 数据类型 BLOB 1 用Oracle Provider for OLE DB可以解决不能访问CLOB,BLOB 2 加“数据转换”组件可以解决“无法在 unicode 和非 unicode 字符串数据类型之间转换”错误 【希望可以帮到你】...

怎样将SQL脚本导入oracle数据库中
将数据库的SQL脚本文件导入到oracle中 1. 首先以管理员的身份登录到oracle系统中 cmd;sqlplus sys\/sys as sysdba;2.创建用户test,密码为test create user test identified by test;3.创建表空间,在D盘下建立50m的表空间data_dbfcreate tablespace ts_tablespace datefile 'D:\\data_dbf' size 50m;#4...

sqlserver数据库如何导入oracle数据库?
在进行SQL Server数据库到Oracle数据库的导入时,使用ETL工具可以极大地简化迁移过程,提高数据迁移的效率与准确性。确保在迁移前后,对数据进行充分的测试与验证,确保数据的完整性和业务的连续性。通过采用这种方法,可以高效地实现不同数据库之间的数据迁移,为企业的数据整合与分析提供强大的技术支持。

相似回答
大家正在搜