接上文,本文展示 TRUNCATE_TABLE 存儲過程的完整測試案例,並開始實現Sybase host_name() 函數在DB2中的用戶定義函數(UDF)版本。
測試腳本 truncate_example.db2 執行流程:
tab1 並插入2條數據。CALL truncate('DB2INST1', 'tab1') 清空表,驗證記錄數歸零。CALL truncate(NULL, 'tab1') 測試默認模式下的清空功能,同樣成功。測試結果證明:該過程能正確處理顯式模式與隱式默認模式,實現與Oracle TRUNCATE 等效的高效清表。
Sybase host_name() 返回客戶端進程所在主機名(非數據庫服務器主機名)。DB2中通過 DBINFO 結構獲取應用程序ID,解析其中編碼的客戶端IP地址,再調用C庫 gethostbyaddr 解析主機名(本地連接解析 127.0.0.1)。
>--HOST_NAME--( )-------------><
*LOCAL 表示本地連接。/etc/hosts 或DNS進行反向解析。下文將展示本地AIX機器(demoaix)與遠程Windows 2000客戶端(mycomputer)的實際調用結果,驗證UDF在不同連接類型下的正確性。