0 / 0
Go back to the English version of the documentation
Dotazy na virtualizované nestrukturované soubory selžou s nesprávnými výsledky v produktu Watson Query
Last updated: 31. 3. 2023
Dotazy na virtualizované nestrukturované soubory selžou s nesprávnými výsledky v produktu Watson Query .

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.

Dotaz zobrazuje například následující výsledky.
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.
Dotaz by však měl vrátit následující výsledky.
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.

  1. 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>%'
  2. 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>', ?, ?)
  3. Chcete-li se vrátit k nové implementaci, znovu spusťte stejný příkaz z kroku 2a nahraďte položku GExcel řetězcem QExcel.
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more