oracle如何导出结果到excel表格
oracle用命令行导出sql语句文本?
oracle用命令行导出sql语句文本?
spool导出的是文本,不是excel表,题主应该指的是csv格式文本。 如果导出栏位为类似银行卡号这样的全数字,可以在select子句中在该栏位前用||拼上4个单引号。
如果导出栏位为类似金额这样的栏位,则可在select子句中对该栏位使用to_char(),格式部分根据需要填若干9,个位部分填0;spool前对该栏位使用 col 栏位名 format 设定足够宽度。
LINUX下Oracle数据导入导出的方法详解?
在“运行”里打开cmd
2
输入命令:sqlplussystem/
其中system是登录数据库的用户名
123456是用户名的密码
orcl是数据库实例名称
3
如果提示命令无效,那就是你没有配置好oracle的环境变量(想当年我也被这个问题困扰着),配置oracle环境变量的方法如下:
1、右击“我的电脑”-gt选择“属性”-gt选择“高级”-gt单击“环境变量”2、选择“path”这一行,单击“编辑”,在“path”的变量值文本框的最后面先加入一个分号“:”,然后再分号后面加入sqlplus文件的目录路径,如“c:programfilesoracleproduct10.2.0db_1in”,然后点击“确定”按钮。3、如果在“系统变量”列表框下面的“变量”列中找不到“oracle_home”和“oracle_sid”这两个变量,则需要下面操作,否则无需一下操作。4、在“系统变量”中点击“新建”按钮,在“变量名”中输入“oracle_home”,变量值中输入oracle的安装目录路径,如“c:programfilesoracleproduct10.2.0db_1”,然后点击“确定”按钮。5、在“系统变量”中点击“新建”按钮,在“变量名”中输入“oracle_sid”,变量值中输入数据库的实例名,然后点击“确定”按钮。
oracle_home:oracle数据库软件的安装目录oracle_sid:oracle数据库的实例名oracle数据库实例名:用于和操作系统进行联系的标识,即数据库和操作系统之间的交换是通过数据库实例名来体现的。
end
第二步,expdp备份命令
1
创建oracle的备份目录:
sqlgtcreatedirectorydpdata1asd:tempdmp
这仅仅是在oracle里设定的目录,并没有真正创建
2
可以通过这句命令查看到这个目录
sqlgtselect*fromdba_directories
3
赋于要导出数据表的所属用户权限
sqlgtgrantread,writeondirectorydpdata1tosshe
4
好了,到了关键一步,之前走了不少弯路,但其它是小问题,在网上零零碎碎查了很多资料,终于找到原因。
首先,要切换回命令窗口,不要再在sqlgt下运行,然后输入命令:
expdpsystem/123456@
5
上面报了一个错ora-39002:操作无效
原因是d:tempdmp这个目录不存在,别以为createdirectory之后就会自动生成文件夹,也别以为执行expdp后会自动生成文件夹,要自己手动新建这个目录文件夹的。新建文件夹后再试一下,果然成功了!恭喜你,已成功备份!
6
如果你要问,导出来的dmp文件怎样还原回去。好吧,做人做到底,为了省去你再找方法的麻烦,这里我也做一个演示(一般备份的数据是等到数据库有问题时才用的上)。
首先,再一次登录数据库sqlplussystem/
然后,删除目标数据库用户dropusersshecascade
7
现在来再一次创建用户,可以用命令创建,也可以在plsql里创建,这里在plsql创建。
用system登录数据库,然后右键users--新建
然后填写你的账号名称,必须和备份时的用户一致,并赋于相应的权限
最后点击应用,完成用户创建。
8
返回dos命令窗口,不再是sqlgt
输入导入命令:impdpsystem/123456@
导入成功!
end
步骤3定时执行备份任务
做一个按年月日命名的批处理。在d:temp目录下新建一个文件,随便命名为.bat,我的命名为,编辑为如下代码
-------------------------------------------------------------------------
@echooffremsetbackupfilef_database_te:~0,4%-te:~5,2%-te:~8,2%.dmpremsetlogfilef_database_te:~0,4%-te:~5,2%-te:~8,2%.logremdelete30daysfilesforfiles/p