當前位置:首頁 » 網頁前端 » asplus腳本超時
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

asplus腳本超時

發布時間: 2023-05-22 12:52:27

⑴ plus模型土地利用運行不了

網路出現延遲。plus模型是一個卜磨集成了土地擴張策略禪弊飢分析模塊和基於多類隨機斑塊種子的元胞自動機模型的未來土地利用變化模擬模型,在進行快賀返速加入時網路出現波動,導致響應超時,加入進不去運行不了,等待網路恢復即可。

⑵ 介紹幾種sql*plus常用的命令

1、登陸命令
sqlplus
username/password@net_service_name
如:
sqlplus
scott/tiger@orcl
2、連接命令
可以使用conn連接到其他用戶,如:conn
sys/admin
as
sysdba
3、執行SQL
腳本文件
SQL>start
file_nameSQL>@
file_name
4、
對當前的輸入進行編輯
SQL>edit
5、重新運行上一次運行的sql語句
SQL>/
6、將顯示的內容輸出到指定文件
SQL>
SPOOL
file_name
在屏幕上的所有內容都包含在該文件中,包括你輸入的sql語句。
7、關閉spool輸出
SQL>
SPOOL
OFF
只有關閉spool輸出,才會在輸出文件中看到輸出的內容。
8、顯示一個表的結構
SQL>
desc
table_name
9、set
命令
語法:SET
system_variable
value
SQL>
show
all
--查看所有68個系統變數值
SQL>
show
user
--顯示當前連接用戶
SQL>
show
error
--顯示錯誤
SQL>
set
heading
off
--禁止輸出列標題,默認值為ON
SQL>
set
feedback
off
--禁止顯示最後一行的計數反饋信息,默認值為對6個或更多的記錄,回送ON
SQL>
set
timing
on
--默認為OFF,設置查詢耗時,可用來估計SQL語句的執行時間,測試性能
SQL>
set
sqlprompt
SQL
--設置默認提示符,默認值就是SQL
SQL>
set
linesize
1000
--設置屏幕顯示行寬,默認100
SQL>
set
autocommit
ON
--設置是否自動提交,默認為OFF
SQL>
set
pause
on
--默認為OFF,設置暫停,會使屏幕顯示停止,等待按下ENTER鍵,再顯示下一頁
SQL>
set
arraysize
1
--默認為15
SQL>
set
long
1000
--默認為80
10、imp
命令
SQL>
host
imp
scott/tiger@orcl
file=D:/test.dmp
full=y

⑶ Oracle中SQL*PLUS使用的一些技巧

Sql*plus中蘊藏著好多技巧 如果掌握這些技巧 對於在oracle資料庫下進行快速開發與有效維護資料庫都是有益的 .使用SQL*PLUS動態生成批量腳本將spool與select命令結合起來使用 可以生成一個腳本 腳本中包含有可以批量執行某一任務的語句 例 生成一個腳本 刪除SCOTT用戶下的所有的表 a 創建gen_drop_table sql文件 包含如下語句 SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在c盤根目錄下會生成文件drop_table sql文件 包含刪除所有表的語句 如下所示:SQL>SELECT DROP TABLE || table_name || ; FROM user_tables; DROPTABLE ||TABLE_NAME|| ; DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STAT_VENDER_TEMP;DROP TABLE TABLE_FORUM; rows selected 中返廳SQL>SPOOL OFFd 對生成的drop_table sql文件進行編輯去掉不必要的部分 只留下drop table … 語句e 在scott用戶下運行dorp_table sql文件 刪除scott用戶下所有的表 SQLPLUS > @ c:dorp_table sql在上面的操作中 在生成的腳本文件中會有多餘的字元 如運行的sql語句 標題 或返回的行數 需要我們編世閉輯該腳本後再運行 給實際的操作帶來諸多不便 懶惰是人的本性 這促使我們用更簡單的辦法來實賣隱現上面的任務 a 創建gen_drop_table sql文件 包含如下語句 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在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 .將一個表中的數據導出生成一個文本文件 列與列之間以 隔開set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlselect DEPTNO || || DNAME FROM DEPT;SPOOL OFF將上面的內容保存為一個文本文件後 以scott登錄 執行該文件後顯示結果 ACCOUNTING RESEARCH SALES OPERATIONS通過上面的兩個例子 我們可以將 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:具體的文件名你要運行的sql語句SPOOL OFF作為一個模版 只要將必要的語句假如這個模版就可以了 在oracle的較新版本中 還可以用set colsep命令來實現上面的功能 SQL> set colsep SQL> select * from dept; ACCOUNTING NEW YORK RESEARCH DALLAS SALES CHICAGO OPERATIONS BOSTON aa bb .動態生成spool命令所需的文件名在我們上面的例子中 spool命令所需要的文件名都是固定的 有時我們需要每天spool一次 並且每次spool的文件名都不相同 如文件名包含當天的日期 該如何實現呢?column dat new_value filename;select to_char(sysdate yyyymmddhh mi ) dat from al;spool c:&&filename txtselect * from dept;spool off; .如何從腳本文件中得到WINDOWS環境變數的值 在windos中 spool c: emp\%ORACLE_SID% txtselect * from dept; spool off在上面的例子中 通過%ORACLE_SID%的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt在UNIX中 spool c: emp$ORACLE_SID txtselect * from dept; spool off在上面的例子中 通過$ORACLE_SID的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt .如何指定預設的編輯腳本的目錄在sql*plus中 可以用save命令 將上一條執行的sql語句保存到一個文件中 但是如何設置該文件的預設目錄呢?通過SQL> set editfile c: empfile sql 命令 可以設置其預設目錄為c: mpe 預設文件名為file sql .如何除去表中相同的行找到相同的行 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注釋 如果只找deptno列相同的行 上面的查詢可以改為 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptno)刪除相同的行 DELETE FROM dept aWHERE ROWID <> (SELECT MAX(ROWIDFROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注意 上面並不刪除列值為null的行 .如何向資料庫中插入兩個單引號( )Insert inot dept values( aa bb a b );在插入時 用兩個 表示一個 .如何設置sql*plus的搜尋路徑 這樣在用@命令時 就不用輸入文件的全路徑 設置SQLPATH環境變數 如 SQLPATH = C:ORANTDBS;C:APPSSCRIPTS;C:MYSCRIPTS .@與@@的區別是什麼?@等於start命令 用來運行一個sql腳本文件 @命令調用當前目錄下的 或指定全路徑 或可以通過SQLPATH環境變數搜尋到的腳本文件 @@用在腳本文件中 用來指定用@@執行的文件與@@所在的文件在同一目錄 而不用指定全路徑 也不從SQLPATH環境變數指定的路徑中尋找文件 該命令一般用在嵌套腳本文件中 .&與&&的區別&用來創建一個臨時變數 每當遇到這個臨時變數時 都會提示你輸入一個值 &&用來創建一個持久變數 就像用用define命令或帶new_vlaue字句的column命令創建的持久變數一樣 當用&&命令引用這個變數時 不會每次遇到該變數就提示用戶鍵入值 而只是在第一次遇到時提示一次 如 將下面三行語句存為一個腳本文件 運行該腳本文件 會提示三次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;將下面三行語句存為一個腳本文件 運行該腳本文件 則只會提示一次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval; .引入的目的Copy命令在兩個資料庫之間拷貝數據時特別有用 特別是該命令可以在兩個資料庫之間傳遞long型欄位的數據 缺點 在兩個資料庫之間傳遞數據時 有可能丟失精度(lose precision) .問什麼在修改大量的行時 我的腳本會變得很慢?當通過PL/SQL塊修改一個表中的許多行時 你會創建在表上創建一個cursor 但是只有在你關閉cursor時 才會釋放ROLLBACK SEGMENT 這樣 當cursor仍然打開時 修改過程會變慢 這是因為資料庫不得不搜尋大量的rollback segment以便於維護讀一致性 為了避免這樣情況 試著在表上加一個標志欄位來描述該行是否已經被修改 然後關閉該cursor 然後再打開該cursor 每次可以修改 行 lishixin/Article/program/Oracle/201311/17262

⑷ 什麼是WinPlus

Windows Preinstallation Environment(WinPE)(Windows預安裝環境)基於在保護模式下運行的WindowsXP個人版內核,是一個只擁有較少(但是非常核心)服務的Win32子系統。這些服務為Windows安裝、實現網路共享、自動底層處理進程和實現硬體驗證。

WinPE讓你創建和格式化硬碟分區,並且給你訪問NTFS文件系統分區和內部網路的許可權。這個預安裝環境支持所有能用Windows2000和WindowsXP驅動的大容量存儲設備,你可以很容易地為新設備添加驅動程序。

使用WinPE可以幫助你把現有基於MS-DOS的工具轉換為32位的WindowsAPIs,以便你在標準的開發環境(例如微軟的VisualStudio)中更加容易地維護這些應用程序。WinPE所包含的硬體診斷和其他預安裝工具都支持標準的WindowsXP驅動,你無需任何做其他特別的工作。對於程序開發者來講,就可以把主要精力放在程序的診斷、調試和開發的環節上。

winpe最長用的功能: 用光碟系統WINPE 輕松更改系統密碼

如何更改Win2K及WinXP系統中管理員的密碼,在網路及一些雜志上也介紹過多次,有些方法雖然實用,但對我等小菜來講,還是姿舉歲有些繁答叢瑣,稍一疏忽,就有可能「貽笑大方」,呵呵!這不,我找到一個非常簡單的更改管理員密碼的方法,用WINPE--一個可在光碟上運行的操作系統,只要幾分鍾的時間,即可輕松搞定管理員的密碼,那場面,一定會讓MM對你的崇拜指數上升N個百分點!

第一步:從網上下載「深山紅葉袖珍系統工具箱」,該軟體集成了WinPE光碟操作系統、微型Linux系統及眾多實用的DOS程序,該軟體為ISO格式,可直接刻錄為引導光碟,容量為200多兆,一張8厘米的小刻錄盤就可裝下,方便攜帶,實屬電腦操作時的必備工具。

第二步:設置CMOS中的啟動順序由CDROM啟動,放入刻錄的「深山紅葉」光碟,重啟系統進入「深山紅葉」啟動菜單,如圖1,選擇第一項「[1] Windows PE(XP) 光碟工具箱」啟動WINPE系統。該系統仿XP界面,所以啟動過程和XP的啟動過程一樣,顯示的啟動畫面還是「WINXP Profreeional」呢!在光碟機燈與硬碟燈一陣狂閃後,系統啟動完成,如圖2,桌面背景蠻震人的!

第三步:依次點擊「開始-強力系統修復 ERD 2003-首先在此設置當前系統目錄!(當前=)」,在彈出的「瀏覽文件夾」窗口中選擇WIN2K或WINXP系統的Windows目錄,如圖3。接著仍是進入「強力系統修復 ERD 2003」菜單中,選擇「修改用戶密碼(LockSmith)」,然後按照LockSmith向導一步步地操作,在對賬號設置新密碼時,默認顯示的賬號是「Administrator」,點擊賬號中的下拉箭頭,選擇要修改密碼的賬號,然後在「新密碼」與「確認密碼」框中填入新的密碼,如跡睜圖4,點下一步,就完成了密碼修改。

第四步:點擊WINPE系統中的「開始-重啟系統」,在重啟過程中彈出光碟,進入正常的WIN2K或WINXP系統,選擇剛才更改的賬號,輸入修改後的密碼,屏幕顯示正在載入用戶信息……,說明密碼更改成功。

修改管理員密碼只是WINPE系統中一個功能,它還有更多實用的功能,就留給各位朋友慢慢研究吧,有好的心得體會別忘了拿出來共享喔!

測試環境:NTFS+WINXP

NTFS+WIN2K

相關資料:——Windows PreInstallation Environment深入研究

Windows PreInstallation Environment(WinPE)直接從字面上翻譯就是「Windows預安裝環境」,微軟在2002年7月22日發布,它的原文解釋是:「Windows預安裝環境(WinPE)是帶有限服務的最小Win32子系統,基於以保護模式運行的Windows XP Professional內核。它包括運行Windows安裝程序及腳本、連接網路共享、自動化基本過程以及執行硬體驗證所需的最小功能。」換句話說,你可把WinPE看作是一個只擁有最少核心服務的Mini操作系統。微軟推出這么一個操作系統當然是因為它擁有與眾不同的系統功能,如果要用一句話來解釋,我認為與Win9X/2000/XP相比,WinPE的主要不同點就是:它可以自定義製作自身的可啟動副本,在保證你需要的核心服務的同時保持最小的操作系統體積,同時它又是標準的32位視窗API的系統平台。當然,現在這么說也許難以理解,沒有關系,下面讓我們來仔細研究它。

WinPE概覽

即使有剛才的解釋,你一定還是對這個全新概念的Mini操作系統一頭霧水,沒關系,在這里我將演示一下其運行的全過程,相信看過之後你或許就會有大致的了解。大多數人獲得的WinPE光碟(包括我手上這張ISO鏡像光碟)應該是一張「Windows XP OPK」CD,意思就是Windows XP OEM預安裝工具包CD。實際上,Windows XP OPK CD是WinPE 32位版本的一個可引導副本,也就是說,這張CD已經是個用WinPE定義製作的操作系統了,我們可直接用它來引導系統。先看看這張CD的目錄結構吧(圖1),總共有352MB,是不是有些大呢?其實由於這是個副本(至少包含了不少驅動程序),大小是由當時自定義製作決定的,若是WinPE的32位非自定義版本,其在磁碟上的鏡像大約為120MB。

1.引導WinPE

筆者考慮到網路環境等問題,主要的使用環境是Vmware虛擬機和Virtual PC虛擬機,不過這兩種虛擬機環境與實際PC環境幾乎沒有區別(就是說如果你不清楚虛擬機也沒關系,就當是在真實PC上直接運行)。

將BIOS中設置成光碟機引導,並開始啟動系統,當屏幕畫面上出現「Press any key boot from cd」時(圖2),按任意鍵從光碟機上的WinPE引導啟動(圖3、4)。如果你的存儲設備驅動不被支持,在啟動時按下F6鍵可載入特殊設備的驅動。當啟動到桌面時系統會做一些如調整解析度的工作(圖5),最後打開默認的CMD命令行解釋工具,大家看看,是貨真凼檔耐夾尾僮骰肪撐叮ㄍ?)。

可以看到桌面上空空如也,不要指望可以拿滑鼠點來點去,畢竟是個什麼應用程序都沒有安裝的最小化圖形操作系統。但它確實是標準的視窗環境,光碟上帶有記事本,在命令行下輸入「Notepad」並回車就可打開(圖7);另外盡管光碟上帶有的可執行的命令行工具有限,但明顯可以自己添加,看看這是什麼(圖8)?沒錯,是我們最熟悉的掃雷游戲(現在知道題頭所指了吧,呵呵),拿滑鼠先玩玩吧,這是筆者從大家熟悉的WinXP操作系統中加入的(方法很簡單,用ISO工具直接拷入剛才的鏡像文件就可以了)。

那麼還是先回到CMD命令行工具中吧。默認的目錄是\I386\system32\,輸入命令行「dir *.exe /w」可查看有哪些可運行的程序(圖9)。下面我們實際研究一下對個人用戶有實際意義的WinPE特性的操作。

在光碟鏡像中可同時看到32位和64位操作系統的工具(圖10),對於個人用戶來講,你可用它直接引導沒有安裝任何系統的機器,並在其上實現32位系統的許多功能,這在後面會一一道來。

2.WinPE對網路的支持

剛才dir時我們看到了ping命令,熟悉這個命令的讀者應該都知道,只有安裝了TCP/IP協議才能使用,那麼不管三七二十一,先來ping自己試試吧,在CMD中鍵入「ping 127.0.0.1」,回車搞定(圖11),顯然是可ping通的,這證明TCP/IP協議確實已在運行。再試一試光碟上另一個命令IPConfig,鍵入運行(圖12),看到IP地址已經自動分配好了。既然網路確實已經連接,那讓我們來實際操作使用吧(這里可能有不少從視窗系統開始接觸計算機的朋友會對操作不知所措,其實並沒有想像中那麼困難,你可以在CMD中使用命令工具帶「/?」參數來查詢具體使用方法,如果你機器上本來就裝有XP,那麼在幫助中心查詢就更方便了,多實驗一下,掌握命令行以後你會發現方便很多)。

現在我的物理機和虛擬機構成了一個虛擬網路,使用光碟鏡像中的net命令,在虛擬機中鍵入「net view」查看已連接的伺服器(圖13),這里顯示的伺服器「XQ-B6QAS26953 EC」,名字表示虛擬機已通過網路連接了我的物理機器。我的物理機器上有一個名為TUKU的文件夾已經共享,所以再鍵入「net use e:\XQ-B6QAS26953EC\TUKU」,意思是將物理機器上的共享目錄TUKU鏡像為虛擬機器上的E盤(圖14),成功後可在虛擬機里自由地訪問共享目錄(圖15),這時就可通過這個來做遠程安裝等工作。Net命令還有不少參數,自己可以查閱並多加嘗試,才可以發揮WinPE強大的網路環境功能,如果只是簡單地訪問伺服器,上面的兩個命令參數基本足夠了。不過這里要記住用WinPE的機器可訪問其他操作系統的機器,而逆操作是不能的,這是由於WinPE本身的限制,我們後面再講這個問題。事實說明,WinPE啟動後就可以使用網路環境。

3.利用WinPE創建、刪除、格式化和管理NTFS文件系統分區

對於個人用戶來說這個功能很是實用和方便。但不少朋友在dir完以後就叫苦,怎麼只有format.com,沒有fdisk啊,根本沒辦法分區嘛。其實這是個誤解,Windows XP中針對磁碟管理工作有專用的命令行工具DiskPart.exe,它是一種文本模式命令解釋程序,能讓你通過使用腳本或從命令提示符直接輸入來管理對象(磁碟、分區或卷),WinPE使用的當然也是DiskPart。

在CMD模式下鍵入「diskpart」並回車進入DiskPart命令行解釋(圖16)。鍵入「list disk」,顯示有兩塊硬碟(圖17),分別為磁碟0和磁碟1。鍵入「select disk=0」執行,意思是選擇指定磁碟,並將焦點轉移到此磁碟,接下來的操作就都是針對它的(後面的操作都是一樣,在磁碟、分區或卷上使用DiskPart命令前,必須首先將對象列表,然後選擇要給予焦點的對象,只有對象擁有焦點時,鍵入的任何DiskPart命令才對該對象進行操作)。鍵入「detail disk」可以查看磁碟0的細節信息(圖18),現在磁碟0整個是一個活動分區C,格式為FAT32,容量為16G。下面我們以實際操作將磁碟0分為兩個區,分別為NTFS格式的8G主分區C和FAT32格式8G邏輯分區D,而將磁碟1整個轉為FAT32格式的分區E來演示WinPE對磁碟的管理操作:

(1)執行「select disk=0」,將焦點轉到磁碟0。執行「select partition 1」,將焦點轉到磁碟0的分區活動C上面。

(2)執行「delete partition」將原來的分區C刪除(圖19)。

(3)執行「create partition primary size=8000」回車,在磁碟0上建立一個新的8000MB的主分區(圖20),焦點會自動轉到新建立的分區上。

(4)接著執行「create partition extended」回車,將磁碟0上剩餘的磁碟空間建立為擴展分區(圖21)。

(5)完成上一步後再執行「create partition logic」回車,將剛建立的擴展分區創建為一個邏輯分區(圖22)。

(6)至此,我們就已經把原來一個活動分區C的磁碟0創建為有一個主分區和一個邏輯分區了(圖23),不過這兩個分區還沒有驅動器號,執行「select partition 1」將焦點轉到主分區1,然後執行「assign letter=C」(圖24),將驅動器號C:分配給主分區。執行「active」回車將主分區設為活動使其可以引導系統(圖25)。

(7)接下來執行「select partition 3」將焦點轉到邏輯分區,執行「assign」回車,意思是系統將下一個可用的驅動器號分配給邏輯分區,由於驅動器號D、E均被佔用(D為磁碟1分區佔用,E為光碟機佔用),所以系統將F分配給了邏輯分區(圖26)。不過沒關系,我們先不管驅動器號的順序,到這里我們對磁碟0的操作就結束了,剩下的目標是將磁碟1的活動分區D轉換為分區E。

(8)執行「select disk 1」將焦點轉到磁碟1,執行「select partition 1」將焦點轉到活動分區D。

(9)由於磁碟1的D分區是活動的主分區,所以設其驅動器號為E,顯然是要將它重新建立為一個非主分區的驅動器,那麼它就不會占據驅動器號D而將它讓給磁碟0的邏輯分區了。執行「delete partition」刪除原來分區D,執行「create partition extended」將磁碟1上所有的磁碟空間建立為擴展分區。

(10)完成上步後再執行「create partition logic」將剛建立的擴展分區創建為一個邏輯分區(圖27)。

(11)最後執行「assign」自動分配驅動器號,系統仍然把D分配給了它(不過在機器重新啟動後系統會自動調整將D分配給磁碟0的邏輯分區,磁碟1的邏輯分區會使用驅動器E,而光碟機就順延到F了,重啟一次系統這些改變都會自動實現)。

(12)現在我們對機器上硬碟的重新分區工作就結束了,執行「exit」退出DiskPart命令行解釋工具,然後執行「format c: /fs:ntfs」,將剛才建立的DISK 0主分區格式化為NTFS文件格式的分區(圖28),同理執行「format d: /fs:fat32」、「format f: /fs:fat32」將分區D、F格式化(圖29),我們最終的操作就完成了。

(13)完成後執行「exit」重新啟動機器,可以再次進入「DiskPart」來查看分區情況是否正確(圖30)。

上面的操作基本包括了對磁碟的創建、刪除、格式化和管理,如果你再仔細讀讀幫助說明,保證你在掌握它強大的功能以後不再想使用Fdisk去管理磁碟。實際上你如果在使用Windows XP,這些知識都非常實用。此外「DiskPart」工具最方便的地方是支持腳本,在這里就不詳細說明了。

WinPE的限制

上面我們已經將WinPE特性的基本操作都實踐了一下,應該可以體會到WinPE對個人的方便之處,但是就像上文所說的那樣,WinPE只是有限功能的Mini操作系統,要正確使用WinPE,當然也要了解它的一些限制。

1.為了防止將它用作盜版操作系統,在連續使用24小時後WinPE將自動退出並重啟。

2.你可從WinPE計算機通過網路直接訪問伺服器和共享。但不能從網路上的另一個位置訪問WinPE計算機上的任何文件或文件夾。WinPE通過TCP/IP及其上的NetBIOS獲得到達文件伺服器的網路連接,不支持其他方法(如IPX/SPX網路協議)。

3.因為涉及反盜版,所以只能從Windows XP Professional CD建立WinPE的自定義版本。而不能從Windows XP Home Edition或Windows 2002 Server操作系統家族的任何成員建立。

4.WinPE太大,不能放在軟盤上。WinPE僅包括可用Win32 API的子集(包括I/O(磁碟和網路)和核心Win32 API)。如果Win32下運行的服務基於Win32 API子集,則它在WinPE是否可用需具體分析。這里不詳細列出WinPE不支持的API了,反正rundll32.exe和shell.dll等是不被支持的,想要在WinPE下面玩Quake的朋友還是趁早放棄。

WinPE的作用

不少朋友看到這兒無論是否有收獲,肯定都會想WinPE到底對自己有什麼明確的作用,這里不妨總結一二。

1.方便易用的啟動工具盤

通過剛才的敘述,大家可以看出,WinPE啟動相當快捷,而且對啟動環境要求不高;最可貴的是,雖然名為啟動盤,其功能卻幾乎相當於安裝了一個Windows XP的「命令行版本」——別忘了網路支持哦。因此,對於個人計算機用戶,只要將其刻錄在一張光碟上,便可放心地去解決初始化系統之類的問題;而對小型網路環境(如網吧等)用戶來說,這一功能尤其實用。

2.有趣的硬碟使用功能

自定義的WinPE不僅可放到那些可移動存儲設備如CD上,還可以放在硬碟上使用。因為許多朋友會認為將WinPE的自定義版本放在硬碟上沒有什麼意義,其實不然。把WinPE放在硬碟上應該是最為有趣的地方,且不說你的操作系統損壞無法進入的情況下啟動硬碟上的WinPE可以方便地修復,關鍵是由於WinPE在硬碟上,所以在WinPE環境下安裝應用程序就有了可能。呵呵,撇開題外話不講,這里看一下如何把自定義的WinPE放到硬碟上吧(只能在硬碟上放置WinPE的32位版本)。

首先要安裝恢復控制台:

(1)將Windows XP Professional CD放在CD-ROM驅動器中,這里指定其為cd_drive。

(2)在命令行CMD窗口中運行cd_drive\i386\winnt32.exe /cmdcons。

然後將WinPE自定義可引導副本放置在硬碟上,如下操作:

(1)在目標硬碟上,創建「C:\Minint」的目錄(這里必須將目錄命名為「Minint」)。

(2)將WinPE「根目錄\i386」下的所有內容復制到C:\Minint。

(3)從WinPE根目錄下將Winbom.ini復制到目標硬碟的根目錄。

(4)在目標硬碟上,將「C:\Cmdcons\txtsetup.sif」的只讀屬性改為讀/寫。

(5)在目標硬碟上,將「C:\Minint\txtsetup.sif」復制到「C:\Cmdcons」進行覆蓋。

(6)重新啟動目標計算機。在「引導」菜單上,選擇引導到「命令控制台」,計算機將使用WinPE引導。

3.Windows XP OPK CD的本職工作

上面說了其實我們拿到的是WinPE的一個可執行副本,即Windows XP OPK(Windows XP OEM預安裝工具包)CD。從名字都知道它原來的本職工作是為了方便OEM工作的。如果你在Windows操作系統環境下打開光碟,它就會自動運行Autorun為你的系統安裝一個「Windows安裝管理器」的工具包(圖31)。利用它,你可以輕易製造出帶有計算機廠商OEM標志的Windows安裝鏡像。雖然這是Windows XP OPK CD的主要本職工作,但顯然對我們個人沒什麼意義,當然,如果你想把手上的Windows安裝CD都打上自己獨有的印記,並在朋友的機器上安裝時炫一下,那麼使用它是個好主意。當然自己的「印記」絕非OEM標志那麼簡單,實際上你還可任意設定WinPE攜帶的軟體,並可設置這些軟體在WinPE啟動時運行;理想的情形下你甚至可以為自定義的WinPE版本加上類似於Windows Explorer的圖形外殼程序——要不怎麼叫專為廠商OEM設計呢?

================================================================================

2、Microsoft Windows Preinstallation Environment (WinPE)微軟官方主頁鏈接

================================================================================

WinPE is a tool based on Microsoft Windows? XP Professional that allows IT staff to build custom solutions that speed up deployment through automation so they spend less time and effort keeping desktops updated. WinPE can run Windows setup, scripts, and imaging applications. Enterprise Agreement (EA) and Software Assurance Membership (SAM) customers received WinPE in their October 2002 updates, and it will continue to be offered as a benefit of Software Assurance.

================================================================================

3、What's the Windows Preinstallation Environment (WinPE)?

================================================================================

John Savill

InstantDoc #38308

John Savill's FAQ for Windows

A. WinPE is a minimal OS, based on the Windows XP kernel, that will replace MS-DOS ring the initial OS installation stages beginning with the next Windows desktop OS, which is known as Longhorn. Recent alpha builds of Longhorn use WinPE, which provides a GUI environment ring the entire installation instead of the old text-based screen prompts that are common ring the initial setup of earlier Windows installations. WinPE will also let the user enter the license key ring the initial stage of the installation, rather than forcing the user to wait until later in the installation process.

Click here to view image

Because WinPE is based on XP, this new minimal OS can

●create and format disk partitions for FAT, FAT32, and NTFS

●access file shares on an intranet and connect to as many as four file shares

●support all mass-storage drivers for XP and Windows 2000

貢獻者:
jiapeng89

⑸ SQL plus 中數據怎麼樣輸出

/ as {sysdba|sysopr}:使用操作系統用戶驗證,以osdba或osopr一員的身份登錄,如驗證通過,被賦予sysdba或sysopr的許可權

使用格式:sqlplus "/ as sysdba"

/nolog:不執行connect操作,直接進入sqlplus操作界面

-s:silent模式,不顯示sqlplus啟動信息和提示符

<:接受sql腳本從標准輸入重定向

<<:立即文檔

4.4.2 提示符命令

accept variable [number|char|date] [format format] [default default] [prompt text] [hide]:接受輸入變數

例子:accept pwd char format a8 prompt Password: hide

column column [format format] [heading heading]:設定對某個域的顯示格式

如果要同時改變某域的輸出長度和標題,必須使用column命令

見emp的定義,name本為char(20),輸出縮為10位,ty本為 char(1),擴張為6位,以便有足夠的空間顯示中文標題。

SQL>column name format a10 heading 姓名;

SQL>column ty format a6 heading 職位;

SQL>column age format 999999 heading 年齡;

SQL>column upd_ts format a14 heading 更新時間;

SQL>select name,ty,age,upd_ts from emp;

show option:顯示SET的選項

spool [filename|off]:輸出重定向文件

timing [start text|show|stop]:定時器

4.4.3 SET選項

autocommit:自動提交insert、update、delete帶來的記錄改變,預設為off

colsep:域輸出分隔符

define:識別命令中的變數前綴符,預設為on,也就是&,碰到變數前綴符,後面的字元串作為變數處理

如果待更新內容包含&(在URL中很常見),而define非設為off,sqlplus會把&後面緊跟的字元串當成變數,提示輸入,這里必須重新輸入&和那個字元串,才能實現正常更新。將define設為off,就不再進行變數判斷。

SQL>set define off;

SQL>update bbs_forum set url=http://www.xxx.com/bbs/show.php&forum_id=1 where forum_id=1;

echo:顯示start啟動的腳本中的每個sql命令,預設為on

feedback:回顯本次sql命令處理的記錄條數,預設為on

heading:輸出域標題,預設為on

linesize:輸出一行字元個數,預設為80

如果一行輸出超過linesize,會回車到第二行,這樣格式就會混亂。

markup html:html格式輸出,預設為off

通常需要與spool配合,否則html輸出就沒有意義。

numwidth:輸出number類型域長度,預設為10

長number類型的域常常因為輸出長度的問題,引起誤會。

pagesize:輸出每頁行數,預設為24

為了避免分頁,可設定為0。

termout:顯示腳本中的命令的執行結果,預設為on

timing:顯示每條sql命令的耗時,預設為off

trimout:去除標准輸出每行的拖尾空格,預設為off

trimspool:去除重定向(spool)輸出每行的拖尾空格,預設為off

4.4.4 例子

以文本形式下載表數據

oracle缺乏將表中數據輸出至文本文件的工具,因此只能利用sqlplus和unix工具做變通的處理

sqlplus -s dbuser/oracle </dev/null

set colsep |;

set echo off;

set feedback off;

set heading off;

set pagesize 0;

set linesize 1000;

set numwidth 12;

set termout off;

set trimout on;

set trimspool on;

spool tmp.txt;

select * from emp;

spool off;

exit

EOF

tr -d < tmp.txt >emp.txt 刪除空格,可選

注意:一定要用spool,如果在命令行中直接用>tmp.txt可能會造成數據缺失,至少在Unixware7上如此

假定某域是char(n),如中間出現回車\n,則下載出的這條記錄的格式將會錯亂,不宜採用此方法

⑹ 如何利用BAT文件登陸OracleSql並執行多個sql腳本PLSQL語句

樓上基本上沒錯,但是需要在sql腳本上最後一行里加上exit命令,否則後續執行會有問題,例如
sqlplus /nolog @1.sql
sqlplus /nolog @2.sql
在1.sql和2.sql中要加入conn對應的用戶,同時在每個sql腳本結尾要加入exit

⑺ 五大瀏覽器下如何使用SaveAs Plus

它以快速下載、完整保存等的特點彌補了各種瀏覽器另存網頁功能的不足。如果你需要經常保存網頁的話,SaveAs Plus將是你很得力的助手!不過,由於現在瀏覽器「流派」眾多,各家插件用伏燃法略有不同。IE、firefox、chrome、opera、safari等瀏覽器下如何使用SaveAs Plus 呢?不妨一起來看看吧! SaveAs Plus 是一款瀏覽器網頁保存增強軟體,它是目前離線保存網頁效果最好的軟體。它以快速下載、完整保存等的特點彌補了各種瀏覽器另存網頁功能的不足。如果你需要經常保存網頁的話,SaveAs Plus將是你很得力的助手!不過,由於現在瀏覽器「流派」眾多,各家插件用法略有不同。 1. HTML DHTML標准對象完整保存,所有相對或絕對路徑的圖像及其他資源相對鏈接離線處理 2.CSS對象保存,樣式中的圖像對象離線處理 3.多框架frame/Iframe網頁完整保存 4. 不安全代碼過濾,refresh Meta及Javascript動態代碼過濾 5. AJAX持久化,將AJAX動態腳本缺塌虛顯示出的DOM對象持久化保存 * 6. Flash動畫離線保存(swf格式) * 7. 特殊網衫缺頁修正,7年積累的不能保存的問題網頁修正經驗代碼* 8. 支持只保存選中部分內容 SaveAs Plus目前兼容的瀏覽器 1.IE兼容 ·標准微軟InternetExplorer網頁瀏覽器插件(IE add-on) ·支持IE6、IE7、IE8及保護模式 ·支持遨遊Maxthon、騰訊TT、世界之窗TheWorld、搜狗瀏覽器、GreenBrowser、等IE內核瀏覽器 2.FireFox兼容 ·Mozila FireFox xpi插件 ·支持Mozila FireFox 1.5、FireFox 2、FireFox 3、Kapiko2 3.Opera兼容 ·增加Opera菜單快捷方式 ·支持Opera9、Opera10 4.Chrome、Safari等Netscape兼容瀏覽器

⑻ 「微服務架構」部署NGINX Plus作為API網關,第1部分 - NGINX

了解著名的Nginx伺服器(微服務必不可少的東西)如何用作API網關。

現代應用程序體系結構的核心是HTTP API。 HTTP使應用程序能夠快速構建並輕松維護。無論應用程序的規模如何,HTTP API都提供了一個通用介面,從單用途微服務到無所不包的整體。通過使用HTTP,支持超大規模Internet屬性的Web應用程序交付的進步也可用於提供可靠和高性能的API交付。

有關API網關對微服務應用程序重要性的精彩介紹,請參閱我們博客上的構建微服務:使用API​​網關。

作為領先的高性能,輕量級反向代理和負載均衡器,NGINX Plus具有處理API流量所需的高級HTTP處理功能。這使得NGINX Plus成為構建API網關的理想平台。在這篇博文中,我們描述了許多常見的API網關用例,並展示了如何配置NGINX Plus以便以高效,可擴展且易於維護的方式處理它們。我們描述了一個完整的配置,它可以構成生產部署的基礎。

注意:除非另有說明,否則本文中的所有信息均適用於NGINX Plus和NGINX開源。

API網關的主要功能是為多個API提供單一,一致的入口點,無論它們在後端如何實現或部署。並非所有API都是微服務應用程序。我們的API網關需要管理現有的API,單塊和正在部分過渡到微服務的應用程序。

在這篇博文中,我們引用了一個假設的庫存管理API,即「倉庫API」。我們使用示例配置代碼來說明不同的用例。 Warehouse API是一個RESTful API,它使用JSON請求並生成JSON響應。但是,當部署為API網關時,使用JSON不是NGINX Plus的限制或要求; NGINX Plus與API本身使用的架構風格和數據格式無關。

Warehouse API實現為離散微服務的集合,並作為單個API發布。庫存和定價資源作為單獨的服務實施,並部署到不同的後端。所以API的路徑結構是:

例如,要查詢當前倉庫庫存,客戶端應用程序會向/ api / warehouse / inventory發出HTTP GET請求。

使用NGINX Plus作為API網關的一個優點是,它可以執行該角色,同時充當現有HTTP流量的反向代理,負載平衡器和Web伺服器。如果NGINX Plus已經是應用程序交付堆棧的一部分,那麼通常不需要部署單獨的API網關。但是,API網關所期望的某些默認行為與基於瀏覽器的流量的預期不同。出於這個原因,我們將API網關配置與基於瀏覽器的流量的任何現有(或未來)配置分開。

為實現這種分離,我們創建了一個支持多用途NGINX Plus實例的配置布局,並為通過CI / CD管道自動配置部署提供了便利的結構。 / etc / nginx下的結果目錄結構如下所示。

所有API網關配置的目錄和文件名都以api_為前綴。這些文件和目錄中的每一個都啟用API網關的不同特性和功能,並在下面詳細說明。

所有NGINX配置都以主配置文件nginx.conf開頭。要讀入API網關配置,我們在nginx.conf的http塊中添加一個指令,該指令引用包含網關配置的文件api_gateway.conf(下面的第28行)。請注意,默認的nginx.conf文件使用include偽指令從conf.d子目錄中引入基於瀏覽器的HTTP配置(第29行)。本博文廣泛使用include指令來提高可讀性並實現配置某些部分的自動化。

api_gateway.conf文件定義了將NGINX Plus公開為客戶端的API網關的虛擬伺服器。此配置公開API網關在單個入口點https://api.example.com/(第13行)發布的所有API,受第16到21行配置的TLS保護。請注意,此配置純粹是HTTPS - 沒有明文HTTP偵聽器。我們希望API客戶端知道正確的入口點並默認進行HTTPS連接。

此配置是靜態的 - 各個API及其後端服務的詳細信息在第24行的include偽指令引用的文件中指定。第27到30行處理日誌記錄默認值和錯誤處理,並在響應中討論錯誤部分如下。

一些API可以在單個後端實現,但是出於彈性或負載平衡的原因,我們通常期望存在多個API。使用微服務API,我們為每個服務定義單獨的後端;它們一起作為完整的API。在這里,我們的Warehouse API被部署為兩個獨立的服務,每個服務都有多個後端。

API網關發布的所有API的所有後端API服務都在api_backends.conf中定義。這里我們在每個塊中使用多個IP地址 - 埠對來指示API代碼的部署位置,但也可以使用主機名。 NGINX Plus訂戶還可以利用動態DNS負載平衡,自動將新後端添加到運行時配置中。

配置的這一部分首先定義Warehouse API的有效URI,然後定義用於處理對Warehouse API的請求的公共策略。

Warehouse API定義了許多塊。 NGINX Plus具有高效靈活的系統,可將請求URI與配置的一部分進行匹配。通常,請求由最具體的路徑前綴匹配,並且位置指令的順序並不重要。這里,在第3行和第8行,我們定義了兩個路徑前綴。在每種情況下,$ upstream變數都設置為上游塊的名稱,該上游塊分別代表庫存和定價服務的後端API服務。

此配置的目標是將API定義與管理API交付方式的策略分開。為此,我們最小化了API定義部分中顯示的配置。在為每個位置確定適當的上游組之後,我們停止處理並使用指令來查找API的策略(第10行)。

使用重寫指令將處理移至API策略部分

重寫指令的結果是NGINX Plus搜索匹配以/ _warehouse開頭的URI的位置塊。第15行的位置塊使用=修飾符執行完全匹配,從而加快處理速度。

在這個階段,我們的政策部分非常簡單。位置塊本身標記為第16行,這意味著客戶端無法直接向它發出請求。重新定義$ api_name變數以匹配API的名稱,以便它在日誌文件中正確顯示。最後,請求被代理到API定義部分中指定的上游組,使用$ request_uri變數 - 其中包含原始請求URI,未經修改。

API定義有兩種方法 - 廣泛而精確。每種API最合適的方法取決於API的安全要求以及後端服務是否需要處理無效的URI。

在warehouse_api_simple.conf中,我們通過在第3行和第8行定義URI前綴來使用Warehouse API的廣泛方法。這意味著以任一前綴開頭的任何URI都代理到相應的後端服務。使用基於前綴的位置匹配,對以下URI的API請求都是有效的:

如果唯一的考慮是將每個請求代理到正確的後端服務,則廣泛的方法提供最快的處理和最緊湊的配置。另一方面,精確的方法使API網關能夠通過顯式定義每個可用API資源的URI路徑來理解API的完整URI空間。採用精確的方法,Warehouse API的以下配置使用精確匹配(=)和正則表達式(〜)的組合來定義每個URI。

此配置更詳細,但更准確地描述了後端服務實現的資源。這具有保護後端服務免於格式錯誤的客戶端請求的優點,代價是正常表達式匹配的一些小額外開銷。有了這個配置,NGINX Plus接受一些URI並拒絕其他URI無效:

使用精確的API定義,現有的API文檔格式可以驅動API網關的配置。可以從OpenAPI規范(以前稱為Swagger)自動化NGINX Plus API定義。此博客文章的Gists中提供了用於此目的的示例腳本。

隨著API的發展,有時會發生需要更新客戶端的重大更改。一個這樣的示例是重命名或移動API資源。與Web瀏覽器不同,API網關無法向其客戶端發送命名新位置的重定向(代碼301)。幸運的是,當修改API客戶端不切實際時,我們可以動態地重寫客戶端請求。

在下面的示例中,我們可以在第3行看到定價服務以前是作為庫存服務的一部分實現的:rewrite指令將對舊定價資源的請求轉換為新的定價服務。

動態重寫URI意味著當我們最終在第26行代理請求時,我們不能再使用$ request_uri變數(正如我們在warehouse_api_simple.conf的第21行所做的那樣)。這意味著我們需要在API定義部分的第9行和第14行使用稍微不同的重寫指令,以便在處理切換到策略部分時保留URI。

HTTP API和基於瀏覽器的流量之間的主要區別之一是如何將錯誤傳達給客戶端。當NGINX Plus作為API網關部署時,我們將其配置為以最適合API客戶端的方式返回錯誤。

頂級API網關配置包括一個定義如何處理錯誤響應的部分。

第27行的指令指定當請求與任何API定義都不匹配時,NGINX Plus會返回錯誤而不是默認錯誤。此(可選)行為要求API客戶端僅向API文檔中包含的有效URI發出請求,並防止未經授權的客戶端發現通過API網關發布的API的URI結構。

第28行指的是後端服務本身產生的錯誤。未處理的異常可能包含我們不希望發送到客戶端的堆棧跟蹤或其他敏感數據。此配置通過向客戶端發送標准化錯誤來進一步提供保護。

完整的錯誤響應列表在第29行的include偽指令引用的單獨配置文件中定義,其前幾行如下所示。如果首選不同的錯誤格式,並且通過更改第30行上的default_type值以匹配,則可以修改此文件。您還可以在每個API的策略部分中使用單獨的include指令來定義一組覆蓋默認值的錯誤響應。

有了這種配置,客戶端對無效URI的請求就會收到以下響應。

在沒有某種形式的身份驗證的情況下發布API以保護它們是不常見的。 NGINX Plus提供了幾種保護API和驗證API客戶端的方法。有關基於IP地址的訪問控制列表(ACL),數字證書身份驗證和HTTP基本身份驗證的信息,請參閱文檔。在這里,我們專注於API特定的身份驗證方法。

API密鑰身份驗證

API密鑰是客戶端和API網關已知的共享密鑰。它們本質上是作為長期憑證發布給API客戶端的長而復雜的密碼。創建API密鑰很簡單 - 只需編碼一個隨機數,如本例所示。

在頂級API網關配置文件api_gateway.conf的第6行,我們包含一個名為api_keys.conf的文件,其中包含每個API客戶端的API密鑰,由客戶端名稱或其他描述標識。

API密鑰在塊中定義。 map指令有兩個參數。第一個定義了API密鑰的位置,在本例中是在$ http_apikey變數中捕獲的客戶端請求的apikey HTTP頭。第二個參數創建一個新變數($ api_client_name)並將其設置為第一個參數與鍵匹配的行上的第二個參數的值。

例如,當客戶端提供API密鑰7B5zIqmRGXmrJTFmKa99vcit時,$ api_client_name變數設置為client_one。此變數可用於檢查經過身份驗證的客戶端,並包含在日誌條目中以進行更詳細的審核。

地圖塊的格式很簡單,易於集成到自動化工作流程中,從現有的憑證存儲生成api_keys.conf文件。 API密鑰身份驗證由每個API的策略部分強制執行。

客戶端應在apikey HTTP頭中顯示其API密鑰。如果此標頭丟失或為空(第20行),我們發送401響應以告知客戶端需要進行身份驗證。第23行處理API鍵與地圖塊中的任何鍵都不匹配的情況 - 在這種情況下,api_keys.conf第2行的默認參數將$ api_client_name設置為空字元串 - 我們發送403響應告訴身份驗證失敗的客戶端。

有了這個配置,Warehouse API現在可以實現API密鑰身份驗證。

JWT身份驗證

JSON Web令牌(JWT)越來越多地用於API身份驗證。原生JWT支持是NGINX Plus獨有的,可以在我們的博客上驗證JWT,如使用JWT和NGINX Plus驗證API客戶端中所述。

本系列的第一篇博客詳細介紹了將NGINX Plus部署為API網關的完整解決方案。可以從我們的GitHub Gist倉庫查看和下載此博客中討論的完整文件集。本系列的下一篇博客將探討更高級的用例,以保護後端服務免受惡意或行為不端的客戶端的攻擊。

原文:https://dzone.com/articles/deploying-nginx-plus-as-an-api-gateway-part-1-ngin

本文:http://pub.intelligentx.net/deploying-nginx-plus-api-gateway-part-1-nginx

討論:請加入知識星球或者小紅圈【首席架構師圈】

⑼ SQL*PLUS的相關命令

下面就介紹一下一些常用的sql*plus命令:
1. 執行一個SQL腳本文件
SQL>start file_name
SQL>@ file_name
我們可以將多條sql語句保存在一個文本文件中,這樣當要執行這個文件中的所有的sql語句時,用上面的任一命令即可,這類似於dos中的批處理。
@與@@的區別是什麼?
@等於start命令,用來運行一個sql腳本文件。
@命令調用當前目錄下的,或指定全路徑,或可以通過SQLPATH環境變數搜尋到的腳本文件。該命令使用是一般要指定要執行的文件的全路徑,否則從預設路徑(可用SQLPATH變數指定)下讀取指定的文件。
@@用在sql腳本文件中,用來說明用@@執行的sql腳本文件與@@所在的文件在同一目錄下,而不用指定要執行sql腳本文件的全路徑,也不是從SQLPATH環境變數指定的路徑中尋找sql腳本文件,該命令一般用在腳本文件中。
如:在c: emp目錄下有文件start.sql和nest_start.sql,start.sql腳本文件的內容為:
@@nest_start.sql - - 相當於@ c: emp est_start.sql
則我們在sql*plus中,這樣執行:
SQL> @ c: empstart.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] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
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] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
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
---------- ----------------------------------------
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
COL1
-----
HOW A
9). 顯示列的當前的顯示屬性值
SQL> COLUMN column_name
10). 將所有列的顯示屬性設為預設值
SQL> CLEAR COLUMNS
8. 屏蔽掉一個列中顯示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL < 2500
ORDER BY DEPTNO;
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
9. 在上面屏蔽掉一個列中顯示的相同的值的顯示中,每當列值變化時在值變化之前插入n個空行。
BREAK ON break_column SKIP n
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
10. 顯示對BREAK的設置
SQL> BREAK
11. 刪除6、7的設置
SQL> CLEAR BREAKS
12. Set 命令:
該命令包含許多子命令:
SET system_variable value
system_variable value 可以是如下的子句之一:
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
1). 設置當前session是否對修改的數據進行自動提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令執行一個sql腳本時,是否顯示腳本中正在執行的SQL語句
SQL> SET ECHO {ON|OFF}
3).是否顯示當前sql語句查詢或修改的行數
SQL> SET FEED[BACK] {6|n|ON|OFF}
默認只有結果大於6行時才顯示結果的行數。如果set feedback 1 ,則不管查詢到多少行都返回。當為off 時,一律不顯示查詢的行數
4).是否顯示列標題
SQL> SET HEA[DING] {ON|OFF}
當set heading off 時,在每頁的上面不顯示列標題,而是以空白行代替
5).設置一行可以容納的字元數
SQL> SET LIN[ESIZE] {80|n}
如果一行的輸出內容大於設置的一行可容納的字元數,則折行顯示。
6).設置頁與頁之間的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
當set newpage 0 時,會在每頁的開頭有一個小的黑方框。
當set newpage n 時,會在頁和頁之間隔著n個空行。
當set newpage none 時,會在頁和頁之間沒有任何間隔。
7).顯示時,用text值代替NULL值
SQL> SET NULL text
8).設置一頁有多少行數
SQL> SET PAGES[IZE] {24|n}
如果設為0,則所有的輸出內容為一頁並且不顯示列標題
9).是否顯示用DBMS_OUTPUT.PUT_LINE包進行輸出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF}
在編寫存儲過程時,我們有時會用dbms_output.put_line將必要的信息輸出,以便對存儲過程進行調試,只有將serveroutput變數設為on後,信息才能顯示在屏幕上。
10).當SQL語句的長度大於LINESIZE時,是否在顯示時截取SQL語句。
SQL> SET WRA[P] {ON|OFF}
當輸出的行的長度大於設置的行的長度時(用set linesize n命令設置),當set wrap on時,輸出行的多於的字元會另起一行顯示,否則,會將輸出行的多於字元切除,不予顯示。
11).是否在屏幕上顯示輸出的內容,主要用與SPOOL結合使用。
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令將一個大表中的內容輸出到一個文件中時,將內容輸出在屏幕上會耗費大量的時間,設置set termspool off後,則輸出的內容只會保存在輸出文件中,不會顯示在屏幕上,極大的提高了spool的速度。
12).將SPOOL輸出中每行後面多餘的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}
13)顯示每個sql語句花費的執行時間
set TIMING {ON|OFF}
14). 遇到空行時不認為語句已經結束,從後續行接著讀入。
SET SQLBLANKLINES ON
Sql*plus中, 不允許sql語句中間有空行, 這在從其它地方拷貝腳本到sql*plus中執行時很麻煩. 比如下面的腳本:
select deptno, empno, ename
from emp
where empno = '7788';
如果拷貝到sql*plus中執行, 就會出現錯誤。這個命令可以解決該問題
15).設置DBMS_OUTPUT的輸出
SET SERVEROUTPUT ON BUFFER 20000
用dbms_output.put_line('strin_content');可以在存儲過程中輸出信息,對存儲過程進行調試
如果想讓dbms_output.put_line(' abc');的輸出顯示為:
SQL> abc,而不是SQL>abc,則在SET SERVEROUTPUT ON後加format wrapped參數。
16). 輸出的數據為html格式
set markup html
在8.1.7版本(也許是816? 不太確定)以後, sql*plus中有一個set markup html的命令, 可以將sql*plus的輸出以html格式展現.
注意其中的spool on, 當在屏幕上輸出的時候, 我們看不出與不加spool on有什麼區別, 但是當我們使用spool filename 輸出到文件的時候, 會看到spool文件中出現了等tag.
14.修改sql buffer中的當前行中,第一個出現的字元串
C[HANGE] /old_value/new_value
SQL> l
1* select * from dept
SQL> c/dept/emp
1* select * from emp
15.編輯sql buffer中的sql語句
EDI[T]
16.顯示sql buffer中的sql語句,list n顯示sql buffer中的第n行,並使第n行成為當前行
L[IST] [n]
17.在sql buffer的當前行下面加一行或多行
I[NPUT]
18.將指定的文本加到sql buffer的當前行後面
A[PPEND]
SQL> select deptno,
2 dname
3 from dept;
DEPTNO DNAME
---------- --------------
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
SQL> L 2
2* dname
SQL> a ,loc
2* dname,loc
SQL> L
1 select deptno,
2 dname,loc
3* from dept
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
19.將sql buffer中的sql語句保存到一個文件中
SAVE file_name
20.將一個文件中的sql語句導入到sql buffer中
GET file_name
21.再次執行剛才已經執行的sql語句
RUN
or
/
22.執行一個存儲過程
EXECUTE procere_name
23.在sql*plus中連接到指定的資料庫
CONNECT user_name/passwd@db_alias
24.設置每個報表的頂部標題
TTITLE
25.設置每個報表的尾部標題
BTITLE
26.寫一個注釋
REMARK [text]
27.將指定的信息或一個空行輸出到屏幕上
PROMPT [text]
28.將執行的過程暫停,等待用戶響應後繼續執行
PAUSE [text]
Sql>PAUSE Adjust paper and press RETURN to continue.
29.將一個資料庫中的一些數據拷貝到另外一個資料庫(如將一個表的數據拷貝到另一個資料庫)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST
create emp_temp
USING SELECT * FROM EMP
30.不退出sql*plus,在sql*plus中執行一個操作系統命令:
HOST
Sql> host hostname
該命令在windows下可能被支持。
31.在sql*plus中,切換到操作系統命令提示符下,運行操作系統命令後,可以再次切換回sql*plus:
!
sql>!
$hostname
$exit
sql>
該命令在windows下不被支持。
32.顯示sql*plus命令的幫助
HELP
如何安裝幫助文件:
Sql>@ ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql
Sql>help index
33.顯示sql*plus系統變數的值或sql*plus環境變數的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
1) . 顯示當前環境變數的值:
Show all
2) . 顯示當前在創建函數、存儲過程、觸發器、包等對象的錯誤信息
Show error
當創建一個函數、存儲過程等出錯時,變可以用該命令查看在那個地方出錯及相應的出錯信息,進行修改後再次進行編譯。
3) . 顯示初始化參數的值:
show PARAMETERS [parameter_name]
4) . 顯示資料庫的版本:
show REL[EASE]
5) . 顯示SGA的大小
show SGA
6). 顯示當前的用戶名
show user
34.查詢一個用戶下的對象
SQL>select * from tab;
SQL>select * from user_objects;
35.查詢一個用戶下的所有的表
SQL>select * from user_tables;
36.查詢一個用戶下的所有的索引
SQL>select * from user_indexes;
37. 定義一個用戶變數
方法有兩個:
a. define
b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]
OLD_V[ALUE] variable [NOPRI[NT]|PRI[NT]]
下面對每種方式給予解釋:
a. Syntax
DEF[INE] [variable]|[variable = text]
定義一個用戶變數並且可以分配給它一個CHAR值。
assign the value MANAGER to the variable POS, type:
SQL> DEFINE POS = MANAGER
assign the CHAR value 20 to the variable DEPTNO, type:
SQL> DEFINE DEPTNO = 20
list the definition of DEPTNO, enter
SQL> DEFINE DEPTNO
―――――――――――――――
DEFINE DEPTNO = 」20」 (CHAR)
定義了用戶變數POS後,就可以在sql*plus中用&POS或&&POS來引用該變數的值,sql*plus不會再提示你給變數輸入值。
b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]
NEW_V[ALUE] variable
指定一個變數容納查詢出的列值。
例:column col_name new_value var_name noprint
select col_name from table_name where ……..
將下面查詢出的col_name列的值賦給var_name變數.
一個綜合的例子:
得到一個列值的兩次查詢之差(此例為10秒之內共提交了多少事務):
column redo_writes new_value commit_count
select sum(stat.value) redo_writes
from v$sesstat stat, v$statname sn
where stat.statistic# = sn.statistic#
and sn.name = 'user commits';
-- 等待一會兒(此處為10秒);
execute dbms_lock.sleep(10);
set veri off
select sum(stat.value) - &commit_count commits_added
from v$sesstat stat, v$statname sn
where stat.statistic# = sn.statistic#
and sn.name = 'user commits';
38. 定義一個綁定變數
VAR[IABLE] [variable [NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR]]
定義一個綁定變數,該變數可以在pl/sql中引用。
可以用print命令顯示該綁定變數的信息。
如:
column inst_num heading Inst Num new_value inst_num format 99999;
column inst_name heading Instance new_value inst_name format a12;
column db_name heading DB Name new_value db_name format a12;
column dbid heading DB Id new_value dbid format 9999999999 just c;
prompt
prompt Current Instance
prompt ~~~~~~~~~~~~~~~~
select d.dbid dbid
, d.name db_name
, i.instance_number inst_num
, i.instance_name inst_name
from v$database d,
v$instance i;
variable dbid number;
variable inst_num number;
begin
:dbid := &dbid;
:inst_num := &inst_num;
end;
/
說明:
在sql*plus中,該綁定變數可以作為一個存儲過程的參數,也可以在匿名PL/SQL塊中直接引用。為了顯示用VARIABLE命令創建的綁定變數的值,可以用print命令
注意:
綁定變數不同於變數:
1. 定義方法不同
2. 引用方法不同
綁定變數::variable_name
變數:&variable_name or &&variable_name
3.在sql*plus中,可以定義同名的綁定變數與用戶變數,但是引用的方法不同。
39. &與&&的區別
&用來創建一個臨時變數,每當遇到這個臨時變數時,都會提示你輸入一個值。
&&用來創建一個持久變數,就像用用define命令或帶new_vlaue字句的column命令創建的持久變數一樣。當用&&命令引用這個變數時,不會每次遇到該變數就提示用戶鍵入值,而只是在第一次遇到時提示一次。
如,將下面三行語句存為一個腳本文件,運行該腳本文件,會提示三次,讓輸入deptnoval的值:
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
將下面三行語句存為一個腳本文件,運行該腳本文件,則只會提示一次,讓輸入deptnoval的值:
select count(*) from emp where deptno = &&deptnoval;
select count(*) from emp where deptno = &&deptnoval;
select count(*) from emp where deptno = &&deptnoval;
40.在輸入sql語句的過程中臨時先運行一個sql*plus命令
#
有沒有過這樣的經歷? 在sql*plus中敲了很長的命令後, 突然發現想不起某個列的名字了, 如果取消當前的命令,待查詢後再重敲, 那太痛苦了. 當然你可以另開一個sql*plus窗口進行查詢, 但這里提供的方法更簡單.
比如說, 你想查工資大於4000的員工的信息, 輸入了下面的語句:
SQL> select deptno, empno, ename
2 from emp
3 where
這時, 你發現你想不起來工資的列名是什麼了.
這種情況下, 只要在下一行以#開頭, 就可以執行一條sql*plus命令, 執行完後, 剛才的語句可以繼續輸入
SQL>> select deptno, empno, ename
2 from emp
3 where
6 #desc emp
Name Null? Type
----------------------------------------- -------- --------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
6 sal > 4000;
DEPTNO EMPNO ENAME
---------- ---------- ----------
10 7839 KING
41. SQLPlus中的快速復制和粘貼技巧
1) 滑鼠移至想要復制內容的開始
2) 用右手食指按下滑鼠左鍵
3) 向想要復制內容的另一角拖動滑鼠,與Word中選取內容的方法一樣
4) 內容選取完畢後(所選內容全部反顯),滑鼠左鍵按住不動,用右手中指按滑鼠右鍵
5) 這時,所選內容會自動復制到SQL*Plus環境的最後一行
42、得到當前資料庫中當前用戶可見的所有表名
select table_name from user_tables;

⑽ As plus怎麼重啟

關閉程序之後,再重新打開As plus。
如果重啟還不行的話,建議你卸載重裝。
卸載Aspen,可以使用Aspen自帶的卸載程序Uninstall AspenTech Software(在Aspen Configuration下) 卸載全部aspen程序。全選所有程序(程序前一定要打上√),點擊Uninstall。鋒拍李卸載中。卸賀激載完成,點擊Close。來到控制面板,點擊卸載程序銀遲,找到Sentinel RMS License Manager8.5.1,並卸載。到此,軟體卸載工作完成。