1

フィールド (CLOB) の内容を IFS (iSeries) 上のファイルに保存しようとしています。

コンテンツを保存する前にファイルは存在せず、ファイルは完璧に作成されますが、ファイルの最初 (常に位置 1 と 2) に 2 つの奇妙な文字が含まれている理由がわかりません。このキャラクターは常に同じではありません。

clob フィールドとファイル (ifs - smtf) の間の変換に問題があると思います。この問題を解決する方法はありますか?

前もって感謝します!!

PD .:申し訳ありませんが、画像を投稿するには少なくとも 10 の評判が必要なため、画像を添付できませんでした。


RPGLE での変数定義

D xmlEntrada      s                   sqltype(CLOB:10000000)

fd = open('/folder/file/file.xml': 
O_WRONLY+O_CREAT+O_TRUNC: 
O_RDWR : 819);                                                

callp write(fd: %addr(xmlEntrada)+2: %len(xmlEntrada));
4

1 に答える 1

2

英語のRPG マニュアルでは、これを「Length-Prefix」と呼んでいます。これは、1 ~ 63353 バイトの変数の場合は 2 バイト、それより大きい変数の場合は 4 バイトです。write() を次のように変更します。

write(fd: %addr(xmlEntrada: *DATA): %len(xmlEntrada));

コンパイラに length-prefix size を決定させます。

以前のリリースの場合は、試してください

write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada));
于 2014-11-29T20:59:54.683 に答える