Cognos
August 13, 2019
ASCIIOutput a tab delimited file + BULK INSERT
Если необходимо экспортнуть в SQL Server значительное количество строк, то вместо SQL инструкций в процессе ТМ1 выгодней использовать связку ASCIIOutput и BULK INSERT
1.
ASCIIOutput( FilePath, YYYY, Months, Factory, Item, Kontragent, VersionBudget, STR(ROUNDP(Summa, 2), 0, 2) );
DatasourceASCIIDelimiter=Char(9);
DatasourceASCIIQuoteCharacter='';
2.
TextOutput
SetOutputCharacterSet
3.
BULK INSERT [DWH_DR].[dbo].[StgTM1BDDS_temp]
FROM '\\kg-bi-db-3\DATA ROOM Land zone\Budget Model LZ\BDDS.txt'
WITH
(CODEPAGE = '1251',
DATAFILETYPE = 'char')
пример процесса
Пролог
ODBCOpen('DWH', 'login', 'pass'); ODBCOutPut( 'DWH', Expand( 'truncate table dbo.Stg'));
DatasourceASCIIDelimiter=Char(9); DatasourceASCIIQuoteCharacter=''; FilePath = '\\.......\S.txt' ;
Метаданные
ASCIIOutput( FilePath, YYYY, Months, Factory, Item, Kontragent, VersionBudget, STR(ROUNDP(Summa, 2), 0, 2) ) ;
Эпилог
SQL = 'BULK INSERT [DWH].[dbo].[Stg] FROM ''\\.......\S.txt'' WITH (CODEPAGE = ''1251'', DATAFILETYPE = ''char'', TABLOCK)' ; ODBCOutPut( 'DWH', Expand( SQL));
ODBCClose('DWH_DR');