Translation not up to date
Když virtualizujete nestrukturované soubory, ke kterým se přistupuje pomocí vzdáleného agenta, některé dotazy mají nesprávné výsledky v případech, kdy jsou pro sloupce, které mají speciální znaky, provedeny konverze typu sloupce.
Projevy
Modul wrapper zdroje aplikace Excel byl upgradován tak, aby umožňoval přístup k tabulkám s neomezenou velikostí. Watson Query může selhat při přístupu k tabulkám, které obsahují mnoho dat, například větších než 250 000 buněk, nebo mají velkou velikost souboru, například větší než 3 MB, což se snadno stává, když v sešitu obsahuje makra. Pokud se setkáte se všemi problémy (například neočekávanými typy nebo hodnotami), můžete přepínat mezi novými a starými zdroji obálek s následujícími voláními rozhraní SQL API.
- Chcete-li přepnout na předchozí zdrojový modul wrapper produktu Excel s názvem GExcel, použijte tento příkaz:
CALL DVSYS.SETCONFIGPROPERTY('EXCEL_SOURCE_WRAPPER_CLASS', 'com.ibm.db2j.GExcel', '', ?, ?)
- Chcete-li přepnout na aktuální zdrojový modul wrapper produktu Excel s názvem QExcel, použijte tento příkaz:
CALL DVSYS.SETCONFIGPROPERTY('EXCEL_SOURCE_WRAPPER_CLASS', 'com.ibm.db2j.QExcel', '', ?, ?)
Například hodnoty měn, které začínají symbolem dolaru, jsou odvozeny jako typ VARCHAR v původním náhledu. Je-li však tento sloupec přetypovaný na číselný typ, jako např. DECIMAL, když virtualizujete, dotazy na virtuální tabulku mají chybné buňky s hodnotou null v tomto sloupci.
db2 => SELECT * FROM DV_TEST."TBL_XLS_TESTFORMULA2" WHERE IDNUM BETWEEN 980 AND 990
IDNUM NAME GROSS DED1 DED2 TDED NET
----------- ------------------------------ ---------- -------- -------- -------- ----------
980 Ahmad Kynett - - - - -
981 Sherlock Spalton - - - - -
982 Ira Gladtbach - - - - -
983 Andrej Dumphy - - - - -
984 Jeremie Fullicks - - - - -
985 Costa Shambrook - - - - -
986 Jacob Darell - - - - -
987 Kevon Heineking - - - - -
988 Sib MacTrusty - - - - -
989 Angelique Wace - - - - -
990 Lothario Kuschel - - - - -
11 record(s) selected.
db2 => SELECT * FROM DV_LOCAL."TBL_XLS_TESTFORMULA2" WHERE IDNUM BETWEEN 980 AND 990
IDNUM NAME GROSS DED1 DED2 TDED NET
----------- ------------------------------ ---------- -------- -------- -------- ----------
980 Ahmad Kynett 4196.77 568.05 349.44 917.50 3279.27
981 Sherlock Spalton 4904.10 681.37 308.92 990.29 3913.81
982 Ira Gladtbach 3189.25 553.35 387.08 940.43 2248.81
983 Andrej Dumphy 4152.29 690.10 499.46 1189.56 2962.73
984 Jeremie Fullicks 2132.98 516.84 319.20 836.05 1296.93
985 Costa Shambrook 3058.66 525.03 363.98 889.01 2169.64
986 Jacob Darell 4247.33 687.88 376.42 1064.30 3183.02
987 Kevon Heineking 3437.73 588.29 464.82 1053.10 2384.62
988 Sib MacTrusty 2231.61 586.28 356.07 942.34 1289.26
989 Angelique Wace 3973.60 683.93 318.11 1002.04 2971.56
990 Lothario Kuschel 2785.71 512.24 314.47 826.71 1959.00
11 record(s) selected.
Řešení problému
Chcete-li tuto záležitost vyřešit, postupujte takto.
- Spusťte následující dotaz SQL a vyhledejte agenta NODE_NAME a PROPERTY , které je třeba upravit, přičemž nahraďte < název souboru > názvem souboru, který byl virtualizován.
select NODE_NAME, REGEXP_REPLACE( id, '_ARGS$', '_VTI' ) PROPERTY from dvsys.listconfig where id like 'VTF_%_ARGS' and def like '%<your file name>%'
- Spusťte následující dotaz SQL pro použití implementace produktu
GExcel
pro přístup k této tabulce, aby mohly být typy převedeny správně. Nahraďte<NODE_NAME>
a<PROPERTY>
hodnotami, které jste našli v kroku 1.CALL DVSYS.SETCONFIGPROPERTY('<PROPERTY>', 'com.ibm.db2j.GExcel', '<NODE_NAME>', ?, ?)
- Chcete-li se vrátit k nové implementaci, znovu spusťte stejný příkaz z kroku 2a nahraďte položku
GExcel
řetězcemQExcel
.