Sql*plus中蘊藏著好多技巧
將spool與select命令結合起來使用
例
生成一個腳本
a
SPOOL c:\drop_table
SELECT
SPOOL OFF
b
SQLPLUS > @ …
c
SQL> SELECT
DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;
SQL> SPOOL OFF
d
e
SQLPLUS > @ c:\dorp_table
在上面的操作中
a
set echo off
set feedback off
set newpage none
set pagesize
set linesize
set verify off
set pagesize
set term off
set trims on
set linesize
set heading off
set timing off
set verify off
set numwidth
SPOOL c:\drop_table
SELECT
SPOOL OFF
b
SQLPLUS > @ …
c
DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;
d
SQLPLUS > @ c:\dorp_table
set echo off
set feedback off
set newpage none
set pagesize
set linesize
set verify off
set pagesize
set term off
set trims on
set linesize
set heading off
set timing off
set verify off
set numwidth
SPOOL c:\drop_table
select DEPTNO ||
SPOOL OFF
將上面的內容保存為一個文本文件後
通過上面的兩個例子
set echo off
set feedback off
set newpage none
set pagesize
set linesize
set verify off
set pagesize
set term off
set trims on
set linesize
set heading off
set timing off
set verify off
set numwidth
SPOOL c:\具體的文件名
你要運行的sql語句
SPOOL OFF
作為一個模版
在oracle的較新版本中
SQL> set colsep
SQL> select * from dept;
在我們上面的例子中
column dat
select to_char(sysdate
spool c:\&&filename
select * from dept;
spool off;
在windos中
spool c:\temp\%ORACLE_SID%
select * from dept;
spool off
在上面的例子中
在UNIX中
spool c:\temp\$ORACLE_SID
select * from dept;
spool off
在上面的例子中
在sql*plus中
通過SQL> set editfile c:\temp\file
找到相同的行
SELECT * FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID)
FROM dept b
WHERE a
AND a
AND a
注釋
如果只找deptno列相同的行
SELECT * FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID)
FROM dept b
WHERE a
刪除相同的行
DELETE FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID
FROM dept b
WHERE a
AND a
AND a
注意
Insert inot dept values(
在插入時
設置SQLPATH環境變量
如
SQLPATH = C:\ORANT\DBS;C:\APPS\SCRIPTS;C:\MYSCRIPTS
@等於start命令
@命令調用當前目錄下的
@@用在腳本文件中
&用來創建一個臨時變量
&&用來創建一個持久變量
如
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
將下面三行語句存為一個腳本文件
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
Copy命令在兩個數據庫之間拷貝數據時特別有用
缺點
在兩個數據庫之間傳遞數據時
當通過PL/SQL塊修改一個表中的許多行時
From:http://tw.wingwit.com/Article/program/Oracle/201311/17262.html