Oracle工具——WRAP

yangtingkun發表於2009-05-12

這個工具由來已久,以為比較簡單,一直沒有寫過,不過前兩天用的時候,發現忘了語法,而這個工具還沒有提示功能,連續幾次都沒有試出來,看來好記性不如爛筆頭,還是記錄一下吧。

 

 

WRAP工具是Oracle用來加密PROCEDUREFUNCTIONPACKAGETYPE的工具,使用WRAP加密後,PL/SQL程式碼變得無法閱讀,但是Oracle可以執行加密後的PL/SQL程式碼。需要注意WRAP加密後,沒有辦法還原,因此如果在資料庫中建立的過程或函式是加密的,那麼如果以後需要修改程式碼,必須找到未加密的版本進行修改,然後再次加密。Oracle絕大部分的內部包都是經過加密的。

WRAP工具的使用很簡單,指定一個輸入引數,一個輸出引數就可以了:

E:\>wrap iname=e:\f_link.sql name=e:\f_link.out

PL/SQL Wrapper: Release 10.2.0.1.0- Production on Mon May 11 20:55:39 2009

Copyright (c) 1993, 2004, Oracle.  All rights reserved.

Processing e:\f_link.sql to e:\f_link.out

不過由於WRAP工具沒有任何的提示,還是很容易犯錯誤的,當時就是將inameoname引數錯記為ifileofile,導致的錯誤:

E:\>wrap ifile=e:\f_link.sql file=e:\f_link.out
PSU(32,1,0,0):Invalid command line arguments
PL/SQL Wrapper error: Couldn't process command line arguments.

E:\>wrap

E:\>wrap help
PSU(32,1,0,0):Invalid command line arguments
PL/SQL Wrapper error: Couldn't process command line arguments.

E:\>help wrap
幫助實用程式不支援這個命令。請鍵入 "x /?"

E:\>wrap /?
PSU(32,1,0,0):Invalid command line arguments
PL/SQL Wrapper error: Couldn't process command line arguments.

E:\>wrap ifile="e:\f_link.sql" file="e:\f_link.out"
PSU(32,1,0,0):Invalid command line arguments
PL/SQL Wrapper error: Couldn't process command line arguments.

另外還需要注意一點,各個版本的WRAP的結果相差很大,OracleWRAP生成的結果也是向下相容的,10g的資料庫可以使用9i生成的WRAP檔案,而在9i中無法使用10gwrap的生成結果。

E:\>wrap iname=e:\f_link.sql

PL/SQL Wrapper: Release 9.2.0.4.0- Production on 星期二 5  12 17:17:40 2009

Copyright (c) Oracle Corporation 1993, 2001.  All Rights Reserved.

Processing e:\f_link.sql to f_link.plb

10g中載入f_link.plb檔案:

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL> @E:\F_LINK.PLB

程式包已建立。


型別已建立。


型別主體已建立。


函式已建立。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-594905/,如需轉載,請註明出處,否則將追究法律責任。

相關文章