日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle spool .dbf,oracle技术之oracle spool的简单使用

發(fā)布時間:2024/10/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle spool .dbf,oracle技术之oracle spool的简单使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

spool是oracle sqlplus提供的一個控制命令。可以利用spool和select語句的組合動態(tài)的生成一些sql腳本或者一些數(shù)據(jù)。

sqlplus中可以執(zhí)行的語句分類大概有兩種,一種是最常見的dml,dcl,ddl。這些語句在執(zhí)行以后會存放在一個sqlplus的buffer中,而且每次只會存放最近執(zhí)行的一條語句,以方便再次執(zhí)行。另外的一種就是稱為“命令語句”了,諸如set linesize之類的,這些語句往往是處理終端顯示格式的一些命令,調(diào)用后語句不會存放入sqlplus buffer中。

spool語句就是命令語句的其中之一。在調(diào)用spool語句后,其后的select語句所產(chǎn)生的所有終端顯示,包括select語句本身和一些行數(shù)信息都會寫入spool語句定義的文件中。在語句執(zhí)行完后,一定要調(diào)用spool off命令,不然輸出的信息只是在數(shù)據(jù)緩存中,不會寫入文件。

下面舉兩個利用spool可以完成的功能:

1、利用spool動態(tài)生成刪除某用戶模式下面所有表的sql腳本:

a. 創(chuàng)建gen_drop_table.sql文件,包含如下語句:

set echo off

set feedback off

set newpage none

set linesize 500

set verify off

set pagesize 0

set term off

set trims on

set linesize 600

set heading off

set timing off

set numwidth 38

SPOOL c:\drop_table.sql

SELECT 'DROP TABLE '|| table_name ||';' ?FROM user_tables;

SPOOL OFF

b. 以SCOTT用戶登錄數(shù)據(jù)庫

SQLPLUS > @ …..\gen_dorp_table.sql

c. 在c盤根目錄下會生成文件drop_table.sql文件,包含刪除所有表的語句,如下所示:

DROP TABLE DEPT;

DROP TABLE EMP;

DROP TABLE PARENT;

DROP TABLE STAT_VENDER_TEMP;

DROP TABLE TABLE_FORUM;

d. 在scott用戶下運行dorp_table.sql文件,刪除scott用戶下所有的表。

SQLPLUS > @ c:\dorp_table.sql

為了防止spool打出的文件中包含sql語句和行數(shù)這些不便的信息,可以通過set來關(guān)閉這些信息在終端上的顯示,然后再執(zhí)行spool。

2、利用spool將select語句選出的紀錄數(shù)據(jù)存放入指定的文件(unix下,寫成shell腳本):

sqlplus 登陸名/密碼@數(shù)據(jù)庫名<

set pagesize 0

set linesize 160

col emp_no format a24

col emp_name format a30

spool record.txt

select '"'||emp_name||'"',emp_no from employee where emp_name like '%huanghe%';

spool off

END

3、利用spool定期處理select紀錄,根據(jù)日期動態(tài)生成文件名:

column dat1 new_value filename;

select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual;

spool c:\&&filename..txt

select * from employee;

spool off;

4、如何在spool中調(diào)用windows和unix的環(huán)境變量:

在windos中:

spool c:\temp\%ORACLE_SID%.txt

select * from dept;

...

spool off

在UNIX中:

spool c:\temp\$ORACLE_SID.txt

select * from dept;

...

spool off

總結(jié)

以上是生活随笔為你收集整理的oracle spool .dbf,oracle技术之oracle spool的简单使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。