使用主變數或檔案參考變數,來更新從屬站緩衝區或從屬站檔案
如果更新的來源是在從屬站檔案中,請使用檔案參考變數來傳送其內容。例如, 下列在 C 應用程式中的陳述式會定義名為 Audio_file 的檔案參考變數, 並使用該變數來更新儲存為資料庫表格中之 BLOB 的音效片段。更新的來源在從屬站檔案中。請注意: 檔案參考變數的 file_options 欄位被設定為 SQL_FILE_READ, 也就是說專供輸入。另請注意檔案參考變數被用來作為對 Content UDF 的內容引數。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE Audio_file; EXEC SQL END DECLARE SECTION; strcpy (Audio_file.name, "/employee/newsound/ajones.wav"); Audio_file.name_length= strlen(Audio_file.name); Audio_file.file_options= SQL_FILE_READ; EXEC SQL UPDATE EMPLOYEE SET SOUND=CONTENT( SOUND, :Audio_file /*file reference variable*/ 'WAVE', /*keep the image format*/ CAST(NULL as LONG VARCHAR)) WHERE NAME='Anita Jones';
如果物件是在從屬站緩衝區中,請使用主變數來傳送其內容, 以進行更新。在下列的 C 應用程式範例中, 會使用名為 Video_seg 的主變數來傳送視訊片段的內容,以進行更新。 同時也會更新與視訊片段相關的註解。視訊片段被儲存為資料庫表格中的 BLOB。請注意: 主變數被用來作為對 Replace UDF 的內容引數。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB (2M) Video_seg EXEC SQL END DECLARE SECTION; EXEC SQL UPDATE EMPLOYEE SET VIDEO=REPLACE( VIDEO, :Video_seg /*host variable*/ 'MPEG1', CAST(NULL as LONG VARCHAR), 'Anita''s new video') WHERE NAME='Anita Jones';
請確定有足夠 UDF 記憶體:更新其內容是在從屬站緩衝區的物件時, 您必須確定「資料庫管理程式架構」中的 UDF_MEM_SZ 參數設定為 4MB 或更大。
您可以使用 DB2 指令 UPDATE DATABASE MANAGER CONFIGURATION 來更新 UDF_MEM_SZ 參數。