Excel から db2 データベースにデータを取得して、それを ixf にエクスポートしようとしています。
ソース(ddlファイル)はこちら
connect to MYDB
drop function ARTIKEL_MATNR;
CREATE FUNCTION ARTIKEL_MATNR()
RETURNS TABLE(Material VARCHAR(64), HerstellerteileNr VARCHAR(32), Hersteller VARCHAR(5))
LANGUAGE OLEDB
EXTERNAL NAME '![IH09_Material$]!Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\excel_imp\150202_Bestand_SASPF_GBP.xls; Extended Properties="Excel 8.0;HDR=YES"';
select count(*) FROM TABLE(ARTIKEL_MATNR()) AS T;
INSERT INTO QV_ARTIKEL_MATNR (MATNR, TKZ, HSTK)
SELECT SUBSTR(Material,1,64), SUBSTR(HerstellerteileNr,1,32), SUBSTR(Hersteller,1,5) FROM TABLE(ARTIKEL_MATNR()) AS T;
select count(*) from QV_ARTIKEL_MATNR;
EXPORT TO C:\excel_imp\ARTIKEL_MATNR.ixf OF IXF MESSAGES C:\excel_imp\msg.txt SELECT * FROM QV_ARTIKEL_MATNR;
しかし、私は得る
SQL0450N Routine "scheme.ARTIKEL_MATNR" (specific name "SQL15020610250178") has generated a result
value, SQLSTATE value, message text, or scratchpad which is too long. SQLSTATE=39501
プロトコルなどのすべてのバッファをすでに拡大しましたが、問題はまだ残っています。Excel ファイルの長さは約 190k 行です。
関数が返すテーブルでのみ選択を行うと、問題はすでに存在するため、挿入にも到達しません。
何か案は?事前にご協力いただきありがとうございます。