handle 中含有其文字文件的 CCSID、格式及語言。 外部檔案的 handle 中還含有外部檔案的指標。 這些 handle 是在啟用文字直欄或外部檔案時所建立。
此處的 DB2 Text Extender 函數可讓您設定或變更 handle 中的文字資訊。
>>-INIT_TEXT_HANDLE---------------------------------------------> >-----+-(--格式--,--語言--)-------------------------+---------->< '-(--CCSID--,--格式--,--語言--,--filename--)--'
執行 ENABLE TEXT COLUMN 指令以啟用已含有文字的文字直欄時, 您可以不需很明確地將文字的格式及語言設定成文字架構設定中所指定的值。 然後,會將這些格式及語言設定儲存在 handle。如果想要有不同的格式及語言值, 您可將它們明確地指定在 ENABLE TEXT COLUMN 指令中。
執行 ENABLE TEXT FILES 指令時,您也可設定文件的 CCSID 及位置。
以後插入含有文字的橫列時,插入起始動作定義會建立 handle, 並將文字格式及語言設成啟用文字直欄時所用的值。
若要將格式及語言的值設成與這些值不同, 請使用 INSERT 指令的 INIT_TEXT_HANDLE 函數。正在插入橫列時, INIT_TEXT_HANDLE 函數會建立部份起始設定的 handle, 而此 handle 含有您所指定的語言及格式值。 然後插入起始動作定義會在此 handle 中填入其它值。
在下例中,INIT_TEXT_HANDLE 會將語言及格式預先設定在起始設定化 handle 中。INSERT 指令會將此 handle 放到 COMMENTHANDLE 直欄中。
db2=>INSERT INTO DB2TX.SAMPLE (DOCID, COMMENT, COMMENTHANDLE) VALUES ('doc 101', 'I have installed...', DB2TX.INIT_TEXT_HANDLE('AMI', 'GERMAN') )
INIT_TEXT_HANDLE 所傳回的值為類型 DB2TEXTH 或 DB2TEXTFH。
>>-+-CCSID----+--(--handle--)---------------------------------->< +-FORMAT---+ +-LANGUAGE-+ '-FILE-----'
此處是從 handle 中取出 CCSID 的範例:
db2=>SELECT DISTINCT DB2TX.CCSID(COMMENTHANDLE) FROM DB2TX.SAMPLE
用相同的方式,您也可以取出文字文件的格式或語言, 或外部檔案的位置。 此處是舉例說明 FORMAT 函數之用法的範例。 它會傳回範例表格中的 ASCII (TDS) 文件數。
db2=>SELECT COUNT(*) FROM DB2TX.SAMPLE WHERE DB2TX.FORMAT(COMMENTHANDLE) = 'TDS'
>>-+-FORMAT--(--handle--,--格式--)--------------+-------------->< +-LANGUAGE--(--handle--,--語言--)------------+ '-FILE--(--handle--,--file-path-and-name--)--'
FORMAT 及 LANGUAGE 函數都可變更 handle 中的對應規格。這些函數會將變更的 handle 以類型 DB2TEXTH 或 DB2TEXTFH 的值傳回。
下例顯示如何變更文字文件的語言設定。
db2=>UPDATE DB2TX.SAMPLE SET COMMENTHANDLE = DB2TX.LANGUAGE(COMMENTHANDLE, 'FRENCH') WHERE ...
再使用一次 LANGUAGE 函數,您會發現已經有所改變:
db2=>SELECT DISTINCT DB2TX.LANGUAGE(COMMENTHANDLE) FROM DB2TX.SAMPLE