Buduję wiele pakietów SSIS z BIML i muszę pobrać dane ze źródła OLE DB między przedziałem dat. Oto XML, który ma generować pakiety:BIML Sparametryzowana kwerenda na źródle Ole db
<Dataflow Name="DFT Insert into <#=TableName#>">
<Transformations>
<OleDbSource Name="Retreive from Source (<#=TableName#>)" ConnectionName="AS400">
<DirectInput>
SELECT s.*
FROM <#=TableSchema#>.<#=TableName#> s
WHERE s.date > ? AND s.date <= ?
</DirectInput>
<Parameters>
<Parameter Name="0" VariableName="User.StartDate"/>
<Parameter Name="1" VariableName="User.MiddleDate"/>
</Parameters>
</OleDbSource>
<OleDbDestination Name="Insert into Destination (<#=TableName#>)" ConnectionName="DB2Mirror" KeepNulls="true" CheckConstraints="false">
<ExternalTableOutput Table="[<#=TableSchema#>].[<#=TableName#>]" />
</OleDbDestination>
</Transformations>
</Dataflow>
Ta struktura normalnie pracować, bo ja już próbowałem, ale z identyfikatorami (int) zamiast dat (string). Błąd, że jestem odbierania podczas próby wygenerowania pakietu jest następujący:
Could not execute Query on Connection AS400
OleDbCommand.Prepare method requires all variable length parameters to have an explicitly set non-zero Size.
wiem, że mogę utworzyć zmienną SSIS i złączyć daty w zapytaniu jako wyrazu, ale chciałbym się trzymać z <DirectInput>
zamiast <VariableInput>
Dodatkowe informacje
DateTime (przepraszam zapomniałem wspomnieć, że był datetime, ale nie sądzę, że dużo) zmienia format zmiennej jest poprawny: rrrr-mm- dd hh: mm: ss. Jestem prawie pewien, że nie ma nic złego w tym formacie, ponieważ próbowałem utworzyć zmienną jako wyrażenie, łącząc daty takie jak ta: <Variable Name="Query" DataType="String" EvaluateAsExpression="true">"SELECT * FROM table WHERE col > '" + @[User::StartDate] + "'"</Variable>
i to działa. Jedną z rzeczy, zapomniałem wspomnieć, i to może być ważne jest to, że DBMS źródłem jest DB2
Czy dodaje typ danych do pomocy Biml? ' ' –
sorrell
Witam @ clrell, dziękuję za komentarz. Atrybut DataType jest nieprawidłowy w tym przypadku: 'Varigence.Languages.Biml.Task.AstVariableParameterMappingNode'. Jedynymi akceptowanymi atrybutami są 'VariableName' i' Name' http://www.bimlscript.com/Content/Docs/biml.xsd –