Translation not up to date
W przypadku wirtualizowania plików tekstowych, do których dostęp jest uzyskiwany za pomocą agenta zdalnego, niektóre zapytania mają niepoprawne wyniki w przypadkach, w których konwersje typów kolumn są wykonywane dla kolumn, które mają znaki specjalne.
Objawy
Opakowanie źródłowe Excel zostało zaktualizowane, aby umożliwić dostęp do arkuszy kalkulacyjnych o nieograniczonej wielkości. Program Watson Query może nie mieć dostępu do arkuszy kalkulacyjnych, które zawierają wiele danych, na przykład większe niż 250 000 komórek, lub mają dużą wielkość pliku, na przykład większą niż 3 MB, co z łatwością zdarza się, gdy skoroszyt zawiera makra. Jeśli wystąpią jakiekolwiek problemy (na przykład nieoczekiwane typy lub wartości), można przełączać się między nowymi i starymi opakowaniami źródłowymi za pomocą następujących wywołań funkcji API języka SQL.
- Aby przełączyć się do poprzedniego opakowania źródłowego programu Excel o nazwie GExcel, należy użyć następującej komendy:
CALL DVSYS.SETCONFIGPROPERTY('EXCEL_SOURCE_WRAPPER_CLASS', 'com.ibm.db2j.GExcel', '', ?, ?)
- Aby przełączyć się do bieżącego opakowania źródłowego programu Excel o nazwie QExcel, należy użyć następującej komendy:
CALL DVSYS.SETCONFIGPROPERTY('EXCEL_SOURCE_WRAPPER_CLASS', 'com.ibm.db2j.QExcel', '', ?, ?)
Na przykład wartości walut, które rozpoczynają się od symbolu dolara, są traktowane jako typ VARCHAR w oryginalnym podglądzie. Jeśli jednak kolumna ta zostanie ponownie wpisana do typu liczbowego, takiego jak DECIMAL, podczas wirtualizacji zapytań względem tabeli wirtualnej będą miały błędne komórki o wartości NULL w tej kolumnie.
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.
Rozwiązanie problemu
Aby obejmować ten problem, wykonaj następujące kroki.
- Uruchom następujące zapytanie SQL, aby znaleźć agenta NODE_NAME i PROPERTY , które mają zostać zmodyfikowane, zastępując < nazwa pliku > nazwą pliku, który został zwirtualizowany.
select NODE_NAME, REGEXP_REPLACE( id, '_ARGS$', '_VTI' ) PROPERTY from dvsys.listconfig where id like 'VTF_%_ARGS' and def like '%<your file name>%'
- Uruchom następujące zapytanie SQL, aby użyć implementacji
GExcel
w celu uzyskania dostępu do tego arkusza kalkulacyjnego, aby możliwe było poprawne przekształcanie typów. Zastąp wartości<NODE_NAME>
i<PROPERTY>
wartościami, które zostały znalezione w kroku 1.CALL DVSYS.SETCONFIGPROPERTY('<PROPERTY>', 'com.ibm.db2j.GExcel', '<NODE_NAME>', ?, ?)
- Aby powrócić do nowej implementacji, uruchom ponownie tę samą komendę z kroku 2, zastępując produkt
GExcel
przy użyciu produktuQExcel
.