杂记:
因工作需要用到了SQLPLUS的脚本,碰到了非常奇葩的错误,SP2-0606,作为新时代的青年,我以饱含热情的姿态去向干妈度娘请教;太不是人了,很多的百度内容都是一样的,看的我脑子嗡嗡的,差一点直接GG了;但是我作为男生一向贯彻坚持不懈((*^▽^*)你懂的)原则,看到了一个外国友人的答案,说的是正常情况下spool定向输出内容是不会报错的,说的太他妹有道理了,当时瞬间云销雨霁,智商爆棚,就是没有告诉解决办法,我要亲切的问候一声他的妹妹;我算是看明白了,还得靠自己啊。
我把所有的情况都考虑了一遍,但是权限的问题忽略了,因为正常我们的oracle不会放在root用户下,如果放在oracle用户下,当我们用自己的用户,或者oracle用户去执行脚本,如果我们把输出的内容重定向到自己的用户下,或者其他用户,则会出现权限问题;也就是说保存的默认路径是在oracle用户下,所以如果在linux系统下,权限是真的有严格的要求。
反思一下:以后如果在linux系统下如果涉及到了多用户,权限问题是必须考虑的问题。
下面是一位前辈的心得:
在生产中常会遇到需要将数量比较大的表值导入到本地文本文件中. 方法有很多种,比较常用的就是spool命令: 要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表
SQL>; select id,username,password from myuser;//测试表
1 John 1234
2 Jack 12345
3 Rose 2345
4 Joe 384657
5 Tom 384655
6 Jordan 384455