从 Oracle 脚本加载 QlikView 数据

QlikView Data Load from Oracle Script

我在使用以下脚本将数据从 Oracle 数据库加载到 QlikView 11 时遇到了一个小问题:

SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='#.##0,00 €;-#.##0,00 €';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD.MM.YYYY';
SET TimestampFormat='DD.MM.YYYY hh:mm:ss[.fff]';
SET MonthNames='Jan;Feb;Mrz;Apr;Mai;Jun;Jul;Aug;Sep;Okt;Nov;Dez';
SET DayNames='Mo;Di;Mi;Do;Fr;Sa;So';

ODBC CONNECT TO [Oracle X;DBQ=db1.dc.man.lan] (XUserId is X, XPassword is Y);

SQL SELECT *
FROM UC140017."TABLE_1";

SQL SELECT *
FROM UC140017."TABLE_2";

SQL SELECT *
FROM UC140017."TABLE_3";

SQL SELECT *
FROM UC140017."TABLE_4";

SQL SELECT *
FROM UC140017."TABLE_5";

这导致以下输出:

Connecting to Oracle X;DBQ=db1.dc.man.lan
Connected
TABLE_1 2.421 lines fetched
TABLE_2 1 lines fetched
TABLE_2 << TABLE_3 2 lines fetched
TABLE_2 << TABLE_4 22 lines fetched
TABLE_2 << TABLE_5 22 lines fetched

没有理由将 TABLE_3、TABLE_4 和 TABLE_5 连接到 TABLE_2。这种关系在数据库中不存在,我在 QlikView 中看不到更改它的选项。你们中有谁知道这是从哪里来的,并且对如何解决这个问题有建议吗?谢谢!

最好的, 克里斯托夫

如果 Table_2、Table_3、Table_4 和 Table_5 中的列具有相同的编号和相同的名称,则 QV 将自动将它们连接成一个 table.为避免这种情况,您可以使用 "NoConcatenate" 前缀:

SQL SELECT *
FROM UC140017."TABLE_1";

NoConcatenate
SQL SELECT *
FROM UC140017."TABLE_2";

NoConcatenate    
SQL SELECT *
FROM UC140017."TABLE_3";

NoConcatenate    
SQL SELECT *
FROM UC140017."TABLE_4";

NoConcatenate
SQL SELECT *
FROM UC140017."TABLE_5";

这将强制 QV 将所有 table 视为不同的 table。请注意,如果是这种情况,那么在重新加载后您将拥有大量合成密钥。