易截截图软件、单文件、免安装、纯绿色、仅160KB

从SqlServer 2K移植到Oracle 10g中的简要总结


公司有一个系统是基于SqlServer 2k,现在,应客户要求,移植到Oracle
10g数据库。代码的扩展极其easy,三下五除二,搞定。就是在将数据从SqlServer 2k导入到Oracle 10g数据库中时出现了一些问题。刚开始采用的方案是把表结构和数据导入到Sql脚本中,然后在Oracle数据库中执行Sql脚本。这个过程涉及到数据 库字段类型的转换问题,容易出错。后来采用使用SqlServer
2k的DTS 将数据从SqlServer中导入到Oracle
10g中。工作就这么搞定了,为了方便以后数据类型的转换,方便以后做针对不同数据库的Sql脚本,我把SqlServer 2k和Oracle 10g大部分数据类型都做了一下测试,当然现在只有SqlServer 2k和Oracle 10g数据对应关系。不对应关系如下:
SqlServer 2k转换为Oracle 10g
列名
SqlServer数据类型
SqlServer长度
Oracle数据类型
column1
bigint
8
   
NUMBER(19)
column2
binary
50
   
RAW(50)
column3
bit
1
   
NUMBER(2)
column4
char
10
   
CHAR(10)
column5
datetime
8
   
DATE
column6
decimal
9
   
NUMBER(18)
column7
float
8
BINARY_DOUBLE
column8
image
16
   
BLOB
column9
int
4
   
NUMBER(10)
column10
money
8
NUMBER(19,4)
column11
nchar
10
NCHAR(10)
column12
ntext
16
NCLOB
column13
numeric
9
NUMBER(18)
column14
nvarchar
50
NVARCHAR2(50)
column15
real
4
BINARY_FLOAT
column16
smalldatetime
4
DATE
column17
smallint
2
NUMBER(5)
column18
smallmoney
4
NUMBER(10,4)
column19
sql_variant
 
BLOB
column20
text
16
CLOB
column21
timestamp
8
RAW(8)
column22
tinyint
1
NUMBER(3)
column23
uniqueidentifier
16
BLOB
column24
varbinary
50
RAW(50)
column25
varchar
50
VARCHAR2(50)
Oracle 10g 转换为SqlServer 2k
Oracle列名
Oracle数据类型
SqlServer列名
SqlServer数据类型
SqlServer数据长度
COLUMN1
BINARY_DOUBLE
COLUMN1
float
8
COLUMN2
BINARY_FLOAT
COLUMN2
real
4
COLUMN3
BLOB
COLUMN3
image
16
COLUMN4
CLOB
COLUMN4
ntext
16
COLUMN5
CHAR(10)
COLUMN5
nchar
10
COLUMN6
DATE
COLUMN6
datet


相关文档:

如何利用SQLSERVER2000的DTS 导入数据到Oracle?

具体步骤就不多说了 ,要导出的SQLSERVER表叫 LDJCUS,主键 Uid (int   自动增长列),导入到Oracle总报错:对象名无效 ,去掉主键列就可以,不知道为什么?难道自动增长的主键列就不能导入到Oracle中???疑惑。。。。 ......

常见Oracle HINT的用法

 1. /*+ALL_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
  例如:
  SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
  2. /*+FIRST_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
  例如 ......

Oracle中start with...connect by prior子句用法

connect by 是结构化查询中用到的,其基本语法是:
select ... from tablename start with 条件1
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
......

oracle 自动增长列 例子

--创建序列
create sequence innerid
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20
order;
--创建表
create table users(
userid int primary key,
username   varchar2(20),
userpwd    varchar2(20)
);
select * from users;
insert into users values( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号