oracle脚本太⼤如何快速导⼊,(转)Oracle导⼊SQL脚本执⾏
和常⽤命令⼤全
在⼯作需要的时候,常常忘记很多命令。今天做的时候才记起!
在SQL_PLUS⾥⾯执⾏:
sql>@full_path/test.sql;
例:sql>@D:/test.sql;
不需要; ⼀般都是在test.sql ⾥⾯最后加上⼀个commit;
但是需要注意的是:在test.sql⽂件⾥⾯每条语句后必须加上“;”,代表⼀条语句的执⾏。
今天在远程导⼊数据的时候:发现使⽤PL/SQL 去执⾏SQL⽂件特别的慢,⽽且当数据量⼤于⼀定的时候,
PL/SQL就会崩溃。⽽使⽤SQL_PLUS执⾏该SQL⽂件速度⽐较快。4000条数据⼤概37S左右就执⾏完成。
附命令⼤全:
1. 执⾏⼀个SQL脚本⽂件
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在⼀个⽂本⽂件中,这样当要执⾏这个⽂件中的所有的sql语句时,⽤上⾯的任⼀命令即可,这类似于dos中的批处理。
@与@@的区别是什么?
@等于start命令,⽤来运⾏⼀个sql脚本⽂件。
@命令调⽤当前⽬录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本⽂件。该命令使⽤是⼀般要指定要执⾏的⽂件的全路径,否则从缺省路径(可⽤SQLPATH变量指定)下读取指定的⽂件。
@@⽤在sql脚本⽂件中,⽤来说明⽤@@执⾏的sql脚本⽂件与@@所在的⽂件在同⼀⽬录下,⽽不⽤
指定要执⾏sql脚本⽂件的全路径,也不是从SQLPATH环境变量指定的路径中寻sql脚本⽂件,该命令⼀般⽤在脚本⽂件中。
如:在c:temp⽬录下有⽂件start.sql和nest_start.sql,start.sql脚本⽂件的内容为:
@@nest_start.sql - - 相当于@
c:tempnest_start.sql
则我们在sql*plus中,这样执⾏:
SQL> @
c:tempstart.sql
2. 对当前的输⼊进⾏编辑
SQL>edit
3. 重新运⾏上⼀次运⾏的sql语句
SQL>/
4. 将显⽰的内容输出到指定⽂件
SQL> SPOOL file_name
在屏幕上的所有内容都包含在该⽂件中,包括你输⼊的sql语句。
5. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出⽂件中看到输出的内容。
6.显⽰⼀个表的结构
SQL> desc table_name
7. COL命令:
主要格式化列的显⽰形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option
...]]
Option选项可以是如下的⼦句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY]
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题
COLUMN column_name HEADING
column_heading
For example:
Sql>select * from
dept;
DEPTNO DNAME LOC
---------- ----------------------------
---------
10 ACCOUNTING NEW YORK
sql>col LOC heading
location
sql>select * from
dept;
DEPTNO DNAME location
-
-------- ----------------------------
-----------
10 ACCOUNTING NEW YORK
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两⾏上:
Sql>select * from
emp
Department name Salary
---------- ---------- ----------
10 aaa 11
SQL> COLUMN ENAME
HEADING ’Employee|Name’
Sql>select * from
emp
Employee
Department name Salary
---------- ---------- ----------
10 aaa 11
note: the col heading turn into two lines from one line.
3). 改变列的显⽰长度:
FOR[MAT] format
Sql>select
empno,ename,job from emp;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
Sql> col ename format
a40
EMPNO ENAME JOB
----------
---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
4). 设置列标题的对齐⽅式
JUS[TIFY]
SQL> col ename justify
center
SQL> /
EMPNO ENAME JOB
----------
---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让⼀个列显⽰在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
EMPNO ENAME
----------oracle登录命令
----------------------------------------
7369 SMITH
7499 ALLEN
7521 WARD
6). 格式化NUMBER类型列的显⽰:
SQL> COLUMN SAL FORMAT
,990
SQL> /
Employee
Department Name Salary Commission
---------- ---------- ---------
----------
30 ALLEN ,600 300
7). 显⽰列值时,如果列值为NULL值,⽤text值代替NULL值COMM NUL[L] text
SQL>COL COMM NUL[L]
text
8). 设置⼀个列的回绕⽅式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
COL1
--------------------
HOW ARE YOU?
SQL>COL COL1 FORMAT
A5
SQL>COL COL1 WRAPPED
COL1
-
----
HOW A
RE YO
U?
SQL> COL COL1
WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
SQL> COL COL1
WORD_WRAPPED

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。