換行
WRAP 函數會將可讀取的 DDL 陳述式轉換成模糊化的 DDL 陳述式。
在模糊化的 DDL 陳述式中,程序化邏輯及內嵌式 SQL 陳述式會以無法輕易擷取邏輯中任何智慧財產的方式進行雜亂。
綱目是 SYSIBMADM。
- object-definition-string
- 包含 DDL 陳述式的 CLOB 或 DBCLOB 類型字串。 它可以是下列其中一個 SQL 陳述式:
- CREATE FUNCTION(SQL 純量)
- CREATE FUNCTION(SQL 表格)
- CREATE PROCEDURE (SQL)
- CREATE TRIGGER
結果是 CLOB (2M) 類型的字串,其中包含輸入陳述式的編碼版本。 結果不能是空值。 編碼由原始陳述式的字首組成,直到且包括常式簽章或觸發程式名稱,後面接著關鍵字 WRAPPED。 此關鍵字後面接著呼叫函數之應用程式伺服器的相關資訊。 資訊格式為 pppvvrrm ,其中:
- ppp 使用下列 3 個字元來識別產品:
- DSN for Db2® for z/OS®
- Db2 for i 的 QSQ
- SQL for Db2 for LUW
- vv 是兩位數版本 ID ,例如 '07'
- rr 是兩位數的版次 ID ,例如 '02'
- m 是一個單字元修正層次 ID ,例如 '0'
此應用程式伺服器資訊後面接著字母 (a-z 及 A-Z)、數字 (0-9)、底線及冒號字串。
已編碼的 DDL 陳述式最多可以比陳述式的純文字形式長三分之一。 如果結果超出 SQL 陳述式的長度上限,則會發出錯誤。
附註
陳述式的編碼是用來模糊化內容,不應視為一種高度加密的形式。範例
範例 1: 產生模糊化版本的函數,以根據給定 40 小時工作週的每小時薪資來計算年度薪資。
VALUES WRAP('CREATE FUNCTION salary(wage DECFLOAT) RETURNS DECFLOAT
RETURN wage * 40 * 52') 此陳述式的結果將會是下列形式:
CREATE FUNCTION salary(wage DECFLOAT) WRAPPED QSQ07020 <encoded-suffix>範例 2: 產生設定複式預設值之觸發程式的模糊化版本。
VALUES WRAP('CREATE OR REPLACE TRIGGER trig1 BEFORE INSERT ON emp
REFERENCING NEW AS n FOR EACH ROW
WHEN (n.bonus IS NULL) SET n.bonus = n.salary * .04') 此陳述式的結果將會是下列形式:
CREATE TRIGGER trig1 WRAPPED QSQ07020 <encoded-suffix>