1启动sql server2005----点击数据库名称邮件弹出提示框----选择“任务”中的”导出数据“----弹出对话框,下一部-----
server name 选主机名
database 选数据库名
然后点属性:
data source:选择客户端的监听名称
用户名:选择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(用户名);