V případě, že se chcete z ODI připojit k souborům MS Excel, pak je nutné (stejně jako pro MS Access) na nějaké MS Windows stanici nadefinovat ODBC zdroj ukazující na požadovaný XLS soubor a samozřejmě mít nainstalovaný XLS ovladač.
Z pohledu ODI by měl na stejném serveru běžet ODI Agent, který bude mít přístup k nadefinovanému ODBC zdroji.
Jakmile existuje ODBC zdroj pro Excel, tak můžete v ODI topologii pod technologií MS Excel vytvořit nový Data Server. Jako driver použijte dodávaný JDBC-ODBC bridge (sun.jdbc.odbc.JdbcOdbcDriver), jako URL cestu na výše vytvořený ODBC zdroj (jdbc:odbc:
Pro vytvořený Data Server založte Fyzické schéma, dále pak Logické schéma a kontext.
Nastavení XLS souboru před Reverse-engineeringem
Před samotným Reverse-engineering procesem se musí v Excelu nadefinovat jména, které pak ODI uvidí jako obyčejné tabulky:
V listu Excelu vyberte oblast buněk a z menu Insert vyberte Name > Define..
Reverse-engineering v ODI
Máte-li nadefinovanou topologii a oblasti v Excelu, můžete provést Reverse-engineering v ODI. Založte Model, nastavte technologii na MS Excel, vyberte Logické schéma a kontext.
Na záložce Selective Reverse proveďte načtení tabulek definovaných v Excelu.
MS Excel jako zdroj
V případě, že Excel bude zdrojem, pak využijte dodávané Znalostní moduly pro nahrávání dat z „any ISO-92 compliant“ databází - tj. LKM, které mají v názvu zdrojové technologie SQL (např. „LKM SQL to Oracle“, „LKM SQL to SQL“ nebo jiné).
MS Excel jako cíl
A/ IKM SQL to SQL Append
V případě, že MS Excel bude cílem, pak ihned můžete začít využívat modul „IKM SQL to SQL Append“. ODI Staging Area je potřeba z cíle (Excel) přesunout na zdroj nebo jiný server.
V případě, že během integrace dat do MS Excel obdržíte následující chybu: [Microsoft][ODBC Excel Driver] Operation must use an updateable query, je potřeba v definici ODBC odznačit Read Only mód.
Potřebujete-li promazat data v cílovém Excelu, pak k dispozici v KM máte volby TRUNCATE a DELETE_ALL:
Jestliže u daného KM nastavíte volbu TRUNCATE, pak dostanete chybu: [Microsoft][ODBC Excel Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE' (TRUNCATE pro Excel není podporován).
Jestliže u daného KM nastavíte volbu DELETE_ALL, pak dostanete chybu: [Microsoft][ODBC Excel Driver] Deleting data in a linked table is not supported by this ISAM (DELETE operace přes daný ODBC driver není podporována).
Workaround může být DROP a opětovný CREATE tabulky. Upravte v IKM DELETE krok, nahraďte jej DROPem a dejte na začátek IKM.
B/ "LKM SQL to SQL" a "IKM SQL Incremental Update"
Po menší úpravě můžete začít využívat i moduly „LKM SQL to SQL“ a „IKM SQL Incremental Update“, ale je potřeba:
1. zajistit,
2. zajistit, aby se při vytváření pomocné integrační tabulky nepoužil datový typ VARCHAR2 (u sloupce IND_UPDATE), jinak obdržíte chybu: [Microsoft][ODBC Excel Driver] Syntax error in field definition:
3. přidat "AS" mezi 'I' a sloupec IND_UPDATE, jinak dostanete chybu: [Microsoft][ODBC Excel Driver] Syntax error (missing operator) in query expression ''I' IND_UPDATE'.
4. přepsat
Výsledkem je přihrávání nových a aktualizace stávajících záznamů v MS Excel (tzn. v Excelu vznikají a dále zůstávají dva listy / tabulky, které jsou využívány pro nahrávání a integraci dat).
Erik Eckhardt
Žádné komentáře:
Okomentovat