异构ORACLE->SYBASE支持列表

一、字段转化对照表

源库oracle字段类型 目标库SYBASE字段类型 是否支持
CHAR(size) CHAR(size)
NCHAR(size) NCHAR(size)
VARCHAR2(size) VARCHAR(size)
NVARCHAR2(size) NVARCHAR(size)
NUMBER(p,s) DECIMAL(p,s) 是,但p只能取值1~38,s取值要小于等于p
DECIMAL(p,s) DECIMAL(p,s) 是,但p只能取值1~38,s取值要小于等于p
INTEGER INT
FLOAT FLOAT
BINARY_FLOAT FLOAT
BINARY_DOUBLE FLOAT
REAL FLOAT
DATE DATETIME
TIMESTAMP DATETIME
TIMESTAMP(6) WITH TIME ZONE DATETIME
TIMESTAMP(6) WITH LOCAL TIME ZONE VARCHAR 是,转换为字符型
BLOB IMAGE
CLOB TEXT
NCLOB TEXT
LONG TEXT
RAW(size) VARBINARY
LONG RAW

二、DDL语句支持列表

语句类型 语句概要 SQL ORA--SYBASE是否支持
创建表 数值型 create table oracle_tab1 (test_1 number(38) primary key,test_2 number(38,29),test_3 integer,test_4 float(126),test_5 binary_float,test_6 binary_double);
字符型 create table oracle_tab2 (test_1 number(38) primary key,test_2 char(255),test_3 varchar2(4000),test_4 nvarchar2(2000),test_5 varchar(30));
日期型 create table oracle_tab3 (test_1 number(38) primary key,test_2 date,test_3 timestamp,test_4 TIMESTAMP WITH LOCAL TIME ZONE,test_5 TIMESTAMP WITH TIME ZONE);
lob及raw create table oracle_tab4 (test_1 number(38) primary key,test_2 blob,test_3 clob,test_4 long,test_5 raw(2000));
主键 create table oracle_tab5 (test_1 number(38,27),test_2 char(255),test_3 date,test_4 varchar2(4000),constraint pk_test12 primary key (test_1,test_2));
主键+外键 create table oracle_tab6 (test_1 number(38,27),test_2 char(255),test_3 integer,test_4 float(126),test_5 timestamp,constraint pk_test1 primary key (test_1,test_2),constraint fk_test foreign key(test_1,test_2) references oracle_tab5(test_1,test_2)); 除外键之外,表及主键都会创建
不常用类型 create table oracle_tab7 (test_1 nchar(200),test_2 real);
不常用类型 create table oracle_tab9 (test_1 nclob);
添加列 主键列 alter table oracle_tab7 add tab7_pk number(38) primary key; 是,但目标库会执行一条添加索引的SQL,导致软件报错,需手动跳过,不建议此操作
特殊字段列 alter table oracle_tab7 add long_raw long raw;
含长度字段 alter table oracle_tab7 add tab7_var varchar2(4000);
不含长度字段 alter table oracle_tab7 add tab7_lob blob;
设为null alter table oracle_tab7 add tab7_null number(38) null;
设为not null alter table oracle_tab7 add tab7_not_null number(38) not null;
null+默认值 alter table oracle_tab7 add tab7_defa number(38) default 10 null;
not null+默认值 alter table oracle_tab7 add tab7_defa1 number(38) default 10 not null;
添加多列 alter table oracle_tab7 add (tab7_var2 varchar2(300),tab7_num2 number(38));
修改列属性 不含字段长度 alter table oracle_tab7 modify tab7_num2 number;
含字段长度 alter table oracle_tab7 modify tab7_var2 varchar(30);
null+默认值 alter table oracle_tab7 modify tab7_num2 number default 10 null; 是,语句会被自动纠正为not null+默认值的方式
not null+默认值 alter table oracle_tab7 modify tab7_num2 number default 10 not null;
删除表、列 删除列 alter table oracle_tab7 drop column tab7_null;
删除表 drop table oracle_tab7;
重命名表、列 修改列名 alter table oracle_tab7 rename column tab7_defa to tab7_defa2;
修改表名 alter table oracle_tab9 rename to oracle_tab8;
添加、删除约束及索引 建唯一索引 create unique index index_oracle_tab7 on oracle_tab7(test_2);
建唯一约束 alter table oracle_tab7 add constraint uni_cons_tab7_defa1 unique(tab7_defa1);
添加主键 alter table oracle_tab7 add constraint tab7_pk1 primary key (tab7_pk);
添加索引 create index index_tab1_test_2 on oracle_tab1(test_2);
添加约束 alter table oracle_tab7 add check(tab7_defa2 not like '%2%'); 不支持
删除索引 drop index index_oracle_tab7;
删除约束 alter table oracle_tab7 drop constraint uni_cons_tab7_defa1;
删除主键 alter table oracle_tab7 drop primary key;
表、列加注释 表注释 comment on table oracle_tab7 is '这是一张测试表';
列注释 comment on column oracle_tab7.test_2 is '这是一个测试型字段';
文档更新时间: 2021-11-01 22:59   作者:操李红