利用ODBC从SQLServer向Oracle中导数据
1、首先要在Oracle数据库中建对应的表,Oracle数据库中的字段类型和Sql Server 有所不同,Oracle中常用的有varchar2、integer、nchar、date,Sql Server 的字段类型相对多一些,uniqueidentifier类型的长度是36。
2、打开管理工具——数据源(ODBC),配置SqlServer的数据源。
3、打开Oracle数据库——工具——ODBC导入
4、选择服务器,输入数据库账号和密码
5、选择用户和表,然后点击左下角的导入按钮即可
6、附上由SqlServer表自动生成Oracle的代码:
/********1.定义变量*********/ DECLARE @table_id int, @table_name varchar(100), @column_id int, @c_name sysname, @c_type varchar(50), @max_length smallint, @precision tinyint, @scale tinyint, @is_nullable bit, @cons_sql varchar(5000)
/********2.变量初始化*********/ set @table_name='mio_log' set @cons_sql='create table '+@table_name+'('
/********3.取表的id*********/ DECLARE tbl_cursor CURSOR FOR select a.id from sys.sysobjects a where a.id = object_id(N'[dbo].['+@table_name+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1
OPEN tbl_cursor FETCH NEXT FROM tbl_cursor INTO @table_id
/********4.构建表的结构*********/ DECLARE columns_cursor CURSOR FOR SELECT b.column_id,b.name,c.name,b.max_length, b.precision,b.scale,b.is_nullable from sys.columns b,sys.systypes c where b.object_id=@table_id and b.system_type_id=c.xtype order by b.column_id asc
OPEN columns_cursor
FETCH NEXT FROM columns_cursor INTO @column_id, @c_name, @c_type, @max_length, @precision, @scale, @is_nullable
WHILE @@FETCH_STATUS = 0 BEGIN set @cons_sql=@cons_sql+@c_name+' '+ (case when @c_type in('smallint','tinyint') then 'int' when @c_type='int' then 'number' when @c_type ='varchar' then 'varchar2('+convert(varchar(2),@max_length)+')' when @c_type in('datetime','smalldatetime') then 'date' when @c_type='decimal' then 'number'+'('+convert(varchar(1),@precision)+','+convert(varchar(1),@scale)+')' when @c_type='char' then 'char('+convert(varchar(2),@max_length)+')' when @c_type='text' then 'long' --此处有待于进一步数据类型的映射 else '##' end)+ (case when @is_nullable=1 then ' null' else ' not null' end)+',' FETCH NEXT FROM columns_cursor INTO @column_id, @c_name, @c_type, @max_length, @precision, @scale, @is_nullable END
/********5.输出建表语句*********/ select left(@cons_sql,Len(@cons_sql)-1)+');'
/********6.释放游标*********/ DEALLOCATE tbl_cursor DEALLOCATE columns_cursor
利用ODBC从SQLServer向Oracle中导数据的更多相关文章
- 利用Kettle进行SQLServer与Oracle之间的数据迁移实践
Kettle简介 Kettle(网地址为http://kettle.pentaho.org/)是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,数据抽取高效 ...
- SQLServer与Oracle的数据同步(触发器trigger)
说到同步,其实是靠"作业"定时调度存储过程来操作数据,增,删,改,全在里面,结合触发器,游标来实现,关于作业调度,使用了5秒运行一次来实行"秒级作业",这样基本 ...
- 利用jdbc处理oracle大数据---大文件和二进制文件
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- 针对各主流数据mysql、sqlserver、oracle中文乱码问题。
针对各主流数据mysql.sqlserver.oracle当以编码格式gbk存放数据时,要注意字符串类型的字段,要采用宽字符串nvarchar存放,前提是当你的应用程序是utf8编码,而数据库是gbk ...
- spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置
spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置 jdbc.properties 文件信息如下: ---------- ...
- c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
这篇文章主要介绍了c#几种数据库的大数据批量插入(SqlServer.Oracle.SQLite和MySql),需要的朋友可以了解一下. 在之前只知道SqlServer支持数据批量插入,殊不知道Ora ...
- 使用odbc从notes中导数据,配置odbc时报错
上次在配置odbc从notes中导数据时一直报错(忘记是什么错误了),后来,尝试着把notes和notesSQL的路径加入到path中就OK了!
- 数据库多行数据合并一行(sqlserver、Oracle、Mysql)
我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如: 表结构: ),coursename )); 需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中 ...
- 异构关系数据库(Sqlserver与Oracle)之间的数据类型转换参考
一.Oracle到SqlServer的数据类型的转变 编号 Oracle ToSqlServer SqlServer 1 BINARY_DOUBLE VARCHAR(100) real 2 BINAR ...
随机推荐
- FineReport: 参数为空选出全部值(按条件查询,空条件时直接过滤,不进行查询。。)
在Java报表软件FineReport中,选择特定的参数(如下图中的姓名.身份证号等)后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需要返回数据时该怎样处理呢?应该过滤掉这个条件,不按这 ...
- STL区间成员函数及区间算法总结
STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间 ...
- 树--四分树(UVa297)
郑重声明: 数据结构这部分内容, 由于博主才学很少(且很浅)的内容, 所以现在所写的(大都是抄的)一些典型例题, 再加上一些自己想法和理解而已, 等博主勤加修炼, 以后会大有补充和改进. 粗浅之处, ...
- CDN学习笔记一(CDN是什么?)
CDN是什么? 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起.那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火 ...
- SQL.变量、运算符、if、while
变量: SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量. 局部变量: 使用declare关键字给变量声明,语法非常 ...
- Jmeter使用之常用函数介绍
“_csvRead”函数 CsvRead函数是从外部读取参数,CsvRead函数可以从一个文件中读取多个参数. 下面具体讲一下如何使用csvread函数: 1. 新建一个csv或者text文件 ...
- iOS开发之用Xcode 在真机上截屏与模拟器截屏
一.真机截屏 1.打开Xcode 6 2.在xcode 选择模拟器或者真机设备的地方选中你的真机 3.Debug-->View Debugging-->Take Screenshot of ...
- D3.js 选择元素和绑定数据/使用数据
选择元素和绑定数据是 D3 最基础的内容,本文将对其进行一个简单的介绍. 一.如何选择元素 在 D3 中,用于选择元素的函数有两个: d3.select():是选择所有指定元素的第一个 d3.sele ...
- OpenGL的glOrtho平行投影函数详解[转]
glortho函数可以将当前的可视空间设置为正投影空间.基参数的意义如图,如果绘制的图空间本身就是二维的,可以使gluOrtho2D.他的使用类似于glOrtho 原型是: void glOrtho( ...
- Sqlerver_各类函数
SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值. 有用的 Aggregate 函数: AVG() - 返回平均值-SELECT AVG(colu ...