小弟出识oracle,
一:现在需要把通过手工添加进如数据库的数据导出出来生车.sql脚本。(注意不是建库的脚本)
二:清空库中的数据后,执行前一步的sql脚本用后 数据库中的数据回到清空前。想要完成以上的操作现问题有2:
请介绍个简单的导出工具,如何使用?工具导出的脚本是否需要手工编辑才可用?
小弟冰天雪地跪求详解。谢谢各位达人
一:现在需要把通过手工添加进如数据库的数据导出出来生车.sql脚本。(注意不是建库的脚本)
二:清空库中的数据后,执行前一步的sql脚本用后 数据库中的数据回到清空前。想要完成以上的操作现问题有2:
请介绍个简单的导出工具,如何使用?工具导出的脚本是否需要手工编辑才可用?
小弟冰天雪地跪求详解。谢谢各位达人
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int set nocount on
set @objectId=object_id(@tablename) if @objectId is null -- 判斷對象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId)) if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對象是否是table
begin
print 'The object is not table'
return
end select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80 if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON' declare syscolumns_cursor cursorfor select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理 begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end +case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end end end fetch next from syscolumns_cursor into @name,@xtype end close syscolumns_cursor
deallocate syscolumns_cursor set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename print '--'+@sql
exec(@sql) if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF' GOexec UspOutputData 你的表名
1、软件 PL/SQL Developer 7.1.5
可以到华军下,http://www.baidu.com/s?ct=0&ie=gb2312&bs=sqlplus+%CF%C2%D4%D8&sr=&z=&cl=3&f=8&wd=pl%2Fsql+developer怕有病毒就自己到华军或者天空什么的搜索 PL/SQL Developer2、安装,相当于傻瓜式安装,简单3、使用,直接输入登陆用户、密码、数据库连接名4、进入后点 FILE ---- NEW ---- SQL WINDOWS
输入 select * from 表名
直接右键点击查询出的数据,点COPY TO EXCEL
保存EXCEL,
清空你的数据
然后将EXCEL的数据重新导入,TOOLS ---- ODBC IMPORTER 自己建个数据源,选择刚才保存的EXCEL就可以导入了方法二、
如果数据过多,可以自己新建个表,点软件左侧TABLES,选择你的表,右键选择第二个(叫什么忘了,COPY什么的,就是复制表结构,相当于新建个表,输入新的表名),如果不行就新建个表吧,然后
FILE ----- NEW -----SQL WINDOWS
输入 insert into 新建表
select * from 原表
请空原表数据
然后insert into 原表
select * from 新建表新建表如果没用,可以删除了
使用软件~~ 暂时还没考虑到这个
不过oracle自带的imp/exp指令不是很好使嘛
请高人指点
楼主导出的也没必要非得是.sql文件吧
安装plsql后
选择一个表---右键---导出数据----选择sql插入---选择输出文件就OK了。
导入方法基本相同
到时候执行下插入就好了