WEB开发网
开发学院数据库Oracle Sqlserver2005迁移至Oracle系列之一:生成表(上) 阅读

Sqlserver2005迁移至Oracle系列之一:生成表(上)

 2009-03-03 13:11:25 来源:WEB开发网   
核心提示:/*--for oracle____oracle--本脚本将产生当前数据库的表的 脚本,包含约束、列上定义的默认值、索引--不产生check、外键;udf、规则、默认、同义词、存储空间、安全主体及权限等脚本--产生的脚本不含构架信息,Sqlserver2005迁移至Oracle系列之一:生成表(上),但可以指定要生成脚

/*
--for oracle____oracle
--本脚本将产生当前数据库的表的 脚本。包含约束、列上定义的默认值、索引
--不产生check、外键;udf、规则、默认、同义词、存储空间、安全主体及权限等脚本
--产生的脚本不含构架信息,但可以指定要生成脚本的构架
--表名支持like运算
--将sqlserver中的date数据类型都对应为oracle中的timestamp类型,相应的去掉以前---以date型作为主键一部分的表的不创建约束---的做法
*/
/*
--todo
--在sqlserver的长类型和oracle的长类型对应问题,字符的个数限制不一致!暂时不处理!
*/
set nocount on
declare @tabname        sysname        --支持通配符
declare @schema            sysname        --构架(默认:dbo)
declare @isenterprise    int            --是否支持企业功能(0.no;1.yes):create index [online];
                                    --create table partition clause;
declare @istbs            int            --是否生成自定义表空间(0.no;1.yes),第一次运行时使用
    declare @tbspath        sysname        --自定义表空间的文件路径(默认"d:"),依赖 @istbs = 1,第一次运行时使用
    declare @onlydeltbs        int            --是否只删除自定义表空间(0.no;1.yes),依赖 @istbs = 1
declare @isuser            int            --是否生成用户(0.no;1.yes),第一次运行时使用
    declare @user            sysname        --用户名称(默认"dbo"),依赖于 @isuser = 1
    declare @onlydeluser    int            --是否只删除用户(0.no;1.yes),依赖于 @isuser = 1 and @user
declare @istable        int            --是否生成表0.no;1.yes)
    declare @onlydeltable    int            --是否只删除表(0.no;1.yes),依赖 @istable = 1
declare @isindex        int            --是否生成表索引(0.no;1.yes)
    declare @onlydelindex    int            --是否只删除索引(0.no;1.yes),依赖  @isindex = 1
declare @issequence        int            --是否生成表序列对象(0.no;1.yes)
    declare @onlydelseq        int            --是否只删除序列对象(0.no;1.yes),依赖 @issequence = 1
declare @issynonym        int            --是否生成表的同义词(0.no;1.yes)
    declare @onlydelsyn        int            --是否只删除同义词(0.no;1.yes),依赖  @issynonym = 1

set @isenterprise = 0
set @schema = 'dbo'
    set @tabname = '%'   
set @istbs = 0
    set @tbspath = 'z:uc'
    set @onlydeltbs = 0
set @isuser = 0
    set @user = 'dbo'
    set @onlydeluser = 0
set @istable = 1
    set @onlydeltable = 0
set @issynonym = 1
    set @onlydelsyn = 0
set @isindex = 1
    set @onlydelindex = 0
set @issequence = 1
    set @onlydelseq = 0

set @tbspath = ltrim(rtrim(@tbspath))
if right(@tbspath,1)<>''
    set @tbspath = @tbspath + ''

1 2 3 4 5 6  下一页

Tags:Sqlserver 迁移 Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接