oracle用命令执行sql脚本文件
当sql命令过多(sql文件过大)时,用plsql执行时比较慢而且容易超时,此时可以用sqlplus命令直接执行sql脚本文件。
@ H:/sql/test.sql (绝对路径)
oracle中spool将查询的数据写入文件
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本
set colsep ‘’ ------设置列分隔符
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool 路径+文件名
select * from tablename;
spool off
方法二:采用以下脚本
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool 路径+文件名
select col1||‘,’||col2||‘,’||col3||‘,’||col4||‘…’ from tablename;
spool off
差别:
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqll导入时,出错的可能性很小,基本都可以导入成功。
因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
ttitle,btitle命令
它主要是对头标题与尾标题的设置,如下:
eg:为查询结果设置居中的头部标题、居右的当天日期作为尾部标题,并为查询结果列定义列标题。
SQL> ttitle center ‘结果’;
SQL> btitle right ‘2021/03/30’;
SQL> select * from dept; ;
结果
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
2021/03/30
如果想撤消ttitle与btitle:
SQL> ttitle off;
SQL> btitle off;
SQL> select * from dept;
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
column 命令
format格式化输出
format 选项
用于格式化指定的列
SQL> column sal format $99,99,99;
SQL> select empno,ename,sal from scott.emp;
EMPNO ENAME SAL
7369 SMITH $8,00
7499 ALLEN $16,00
7521 WARD $12,50
7566 JONES $29,75
7654 MARTIN $12,50
7698 BLAKE $28,50
7782 CLARK $24,50
7788 SCOTT $30,00
7839 KING $50,00
7844 TURNER $15,00
7876 ADAMS $11,00
EMPNO ENAME SAL
7900 JAMES $9,50
7902 FORD $30,00
7934 MILLER $13,00
14 rows selected.
heading 选项
用于定义列标题
SQL> col empno heading 雇员编号;
SQL> col ename heading 雇员姓名;
SQL> col sal heading 雇员薪水;
SQL> select empno,ename,sal from scott.emp;
雇员编号 雇员姓名 雇员薪水
7369 SMITH $8,00
7499 ALLEN $16,00
7521 WARD $12,50
7566 JONES $29,75
7654 MARTIN $12,50
7698 BLAKE $28,50
7782 CLARK $24,50
7788 SCOTT $30,00
7839 KING $50,00
7844 TURNER $15,00
7876 ADAMS $11,00
雇员编号 雇员姓名 雇员薪水
7900 JAMES $9,50
7902 FORD $30,00
7934 MILLER $13,00
14 rows selected.
对缓存区的操作
(1)查看当前缓存区中的SQL命令。
list
(2)执行存储在缓存区的SQL命令。
run
(3)将缓存区中的内容保存到一个SQL脚本文件(文件名自拟)。
save C:/sql.sql
(4)把一个脚本文件的内容放进缓存区,并执行缓存区中的语句。
get C:/sql.sql
start C:/sql.sql
(5)清除缓存区中的内容。
clear buffer
SQL> save H:/sql/test3.txt;
Created file H:/sql/test3.txt
SQL> get H:/sql/test.sql;
1 select table_name from user_tables;
2* desc dept
SQL> start H:/sql/test.sql;
TABLE_NAME
DEPT
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
我搜集整理过这几年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
=image/format,png)
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。