首頁 | 關於知識網 | 會員規範 | 知識地圖| 本站連結 | JACKSOFT | 加入會員 |
電腦稽核 >> 電腦稽核軟體討論區 >>[分享]ACL的指令function介紹 ( 字母開頭為B者 )
[分享]ACL的指令function介紹 ( 字母開頭為B者 )

本文是為了讓大家對於不同指令用法能很快的有初步概念

若是需要更深入的介紹,可以到「技術百科」→「ACL技術百科」中查詢,裡面附有圖文範例喔

BETWEEN( )

BETWEEN( )會依照最大與最小值之間是否有我們所希望的特定值,傳回 Ture 或 False

我們可以使用BETWEEN( )來測試值域,像是存貨是否有介於20,000到60,000間。
另外你也可以用它來測試日期的範圍或字母的範圍。

指令的格式

  BETWEEN(value, minimum_value, maximum_value)

或

  BETWEEN(value, maximum_value, minimum_value)

BETWEEN( )中的三個參數一定要是相同的型態:數字、日期或字母。
如果輸入的值 ( value ) 是「介於」或「等於」最大值 ( minimum_value ) 與最小值 ( minimum_value ) 之間
那麼BETWEEN( )會回傳T ( true ),若是沒有,則回傳F ( false )。

當數字欄位中存有不同的精準度 ( 小數點以下 ) 的數字,ACL就會採用最高的那個精準度來執行BETWEEN( )

當這三個參數為日期時,其格式可以相互不同,因為ACL會依照這個日期是以何種格式存於欄位中來做判斷。

字母比較會因大小寫而不同。
ACL有一個「字母比較 ( Exact Character Comparison )」選項來管理ACL比較字母字串的方式。
如果 SET EXACT 選項是 OFF (關閉),「A」會被認為等於「ABC」和「ABXYZ」。
如果 SET EXACT 選項是 ON (開啟),「A」則不會被認為等於「ABC」。
而 SET EXACT 預設值是 OFF。

範例

  BETWEEN(5,4,7) = T

  BETWEEN(5,5,7) = T

  BETWEEN(5,6,7) = F

  BETWEEN("abc","A","B") = F

  BETWEEN("ABC","A","B") = T

  BETWEEN("BCD","ABC","BB") = F

  BETWEEN('20011031','20010930','20011130') = T

BIT( )

BIT( )會回傳一個位元字串,它代表在目前紀錄中,一個特定位元組的位置。
我們使用BIT( )來測試在位元組中單獨的位元。在某種程度上,BIT( )有點像BYTE( )。

指令的格式

  BIT(byte_location)

BIT( )會把在目前紀錄中,位元組位置(byte_location)的位元組轉換成八個字元長度的字串,並以1與0表示。

範例

我們將位元組8、9、17的位元值指派給變數b8、b9、b17

  ASSIGN b8 = BIT(8)

  ASSIGN b9 = BIT(9)

  ASSIGN b17 = BIT(17)

接著你就會得到:

  b8 = 00110001 ,如果第八個位元組為 “1”

  b9 = 01000001 ,如果第九個位元組為 “A”

  b17 = 01100001 ,如果第十七個位元組為 “a”

假設位元組位置17包含8個為一組的關鍵指標。
我們可以用以下的方式,擷取所有第三個位元被設定為1(表示「不要空運」)的顧客紀錄。

  SUBSTR(BIT(17), 3, 1) = "1"

在這個例子中,SUBSTR( )被用來查看第三個位元。

BLANKS( )

BLANKS( )串造一個全為空白的特定長度字元字串。

我們使用BLANKS( )清空一個欄位、初始化一個變數、或藉由增加幾個空白讓一個欄位變大。

指令的格式

  BLANKS(number_of_blanks)

BLANKS( )傳回一個有特定長度的空白字串。這個字串長度一定要用數字表示。

範例

  BLANKS(5) = " "

  BLANKS(10) = " "

在接下來的例子中,我們將空白加入一個字元字串。

  "abc" + BLANKS(5) = "abc "

BYTE( )

BYTE( )傳回一個在紀錄中,特定位置的位元組 ASCII 字元直譯。

若使用BYTE( ),我們不必定義出目標欄位,就可以檢驗一個紀錄中的位置的內容。
如果你使用這個功能於EBCDIC資料,這個回傳值也會是EBCDIC。
不過要用它和一個字元比較就可能會遇到困難。

指令的格式

  BYTE(byte_location)

BYTE( )指令允許存取輸入資料的個別位元組。
位元組位置 ( byte_location ) 表示紀錄中 ( 從1開始算起 ) 的位置。
這個指令在位元組位置存取位元組,並以單一字元字串的方式回傳值。

範例

給定以下的紀錄內容:

  10072DOE JOHN 123188

  ....|....1....|....2....|....3....|....4....|

則

  BYTE(4) = "7"

  BYTE(25) = "H"

  BYTE(30) = " "


2
 
 

   
相關標籤
   
回文 #1
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:500
回文時間:2009-09-09 20:49:27

不知有沒有適用軟體可供下載自學
   
回文 #2
回覆會員暱稱:玉米
點數:7050
等級:知識長

榮譽勳章:知識長
發文篇數:344
回文時間:2009-09-09 20:46:24

請問這些能這樣自學嗎
網站建議與問題回報 | 隱私權政策 | 網站管理規範 | 條款與政策