Comando OLE DB - trasformazioneOLE DB Command Transformation

La trasformazione Comando OLE DB esegue un'istruzione SQL per ogni riga in un flusso di dati.The OLE DB Command transformation runs an SQL statement for each row in a data flow. È ad esempio possibile eseguire un'istruzione SQL che inserisce, aggiorna o elimina righe in una tabella di database.For example, you can run an SQL statement that inserts, updates, or deletes rows in a database table.

Per configurare la trasformazione comando OLE DB, procedere nel modo seguente:You can configure the OLE DB Command Transformation in the following ways:

  • Specificare l'istruzione SQL eseguita dalla trasformazione per ogni riga.Provide the SQL statement that the transformation runs for each row.

  • Specificare il numero di secondi prima del timeout dell'istruzione SQL.Specify the number of seconds before the SQL statement times out.

  • Specificare la tabella codici predefinita.Specify the default code page.

    In genere l'istruzione SQL include parametri.Typically, the SQL statement includes parameters. I valori dei parametri vengono archiviati in colonne esterne nell'input della trasformazione e, se si esegue il mapping di una colonna di input a una colonna esterna, verrà eseguito il mapping di una colonna di input a un parametro.The parameter values are stored in external columns in the transformation input, and mapping an input column to an external column maps an input column to a parameter. Per individuare ad esempio le righe della tabella DimProduct in base al valore nella relativa colonna ProductKey ed eliminarle, è possibile eseguire il mapping della colonna esterna con il nome Param_0 alla colonna di input con il nome ProductKey, , quindi eseguire l'istruzione SQL DELETE FROM DimProduct WHERE ProductKey = ?.For example, to locate rows in the DimProduct table by the value in their ProductKey column and then delete them, you can map the external column named Param_0 to the input column named ProductKey, and then run the SQL statement DELETE FROM DimProduct WHERE ProductKey = ?.. I nomi dei parametri sono specificati dalla trasformazione Comando OLE DB e non possono essere modificati.The OLE DB Command transformation provides the parameter names and you cannot modify them. I nomi dei parametri sono Param_0, Param_1e così via.The parameter names are Param_0, Param_1, and so on.

    Se si configura la trasformazione Comando OLE DB tramite la finestra di dialogo Editor avanzato , sarà possibile eseguire automaticamente il mapping dei parametri dell'istruzione SQL alle colonne esterne nell'input della trasformazione e definire le caratteristiche di ogni parametro facendo clic sul pulsante Aggiorna .If you configure the OLE DB Command transformation by using the Advanced Editor dialog box, the parameters in the SQL statement may be mapped automatically to external columns in the transformation input, and the characteristics of each parameter defined, by clicking the Refresh button. Se tuttavia il provider OLE DB utilizzato dalla trasformazione Comando OLE DB non supporta la derivazione di informazioni sui parametri dai parametri, sarà necessario configurare le colonne esterne manualmente.However, if the OLE DB provider that the OLE DB Command transformation uses does not support deriving parameter information from the parameter, you must configure the external columns manually. Questo significa che è necessario aggiungere una colonna per ogni parametro all'input esterno della trasformazione, aggiornare i nomi delle colonne in modo da usare nomi quale Param_0, specificare il valore della proprietà DBParamInfoFlags ed eseguire il mapping delle colonne di input contenenti i valori dei parametri alle colonne esterne.This means that you must add a column for each parameter to the external input to the transformation, update the column names to use names like Param_0, specify the value of the DBParamInfoFlags property, and map the input columns that contain parameter values to the external columns.

    Il valore di DBParamInfoFlags rappresenta le caratteristiche del parametro.The value of DBParamInfoFlags represents the characteristics of the parameter. Il valore 1 , ad esempio, specifica che si tratta di un parametro di input, mentre il valore 65 specifica che si tratta di un parametro di input che può contenere un valore Null.For example, the value 1 specifies that the parameter is an input parameter, and the value 65 specifies that the parameter is an input parameter and may contain a null value. I valori devono corrispondere a quelli nell'enumerazione OLE DB DBPARAMFLAGSENUM.The values must match the values in the OLE DB DBPARAMFLAGSENUM enumeration. Per ulteriori informazioni, vedere la documentazione di riferimento di OLE DB.For more information, see the OLE DB reference documentation.

    La trasformazione Comando OLE DB include la proprietà personalizzata SQLCommand ,The OLE DB Command transformation includes the SQLCommand custom property. che può essere aggiornata da un'espressione di proprietà al caricamento del pacchetto.This property can be updated by a property expression when the package is loaded. Per altre informazioni, vedere Espressioni di Integration Services (SSIS), Utilizzo delle espressioni di proprietà nei pacchetti e Proprietà personalizzate delle trasformazioni.For more information, see Integration Services (SSIS) Expressions, Use Property Expressions in Packages, and Transformation Custom Properties.

    Questa trasformazione include un input, un output regolare e un output degli errori.This transformation has one input, one regular output, and one error output.

RegistrazioneLogging

È possibile registrare le chiamate eseguite dalla trasformazione Comando OLE DB a provider di dati esterni.You can log the calls that the OLE DB Command transformation makes to external data providers. Questa nuova funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi alle connessioni e ai comandi a origini dati esterne impartiti dalla trasformazione Comando OLE DB.You can use this logging capability to troubleshoot the connections and commands to external data sources that the OLE DB Command transformation performs. Per registrare le chiamate eseguite dalla trasformazione Comando OLE DB a provider di dati esterni, abilitare la registrazione dei pacchetti e selezionare l'evento Diagnostic a livello del pacchetto.To log the calls that the OLE DB Command transformation makes to external data providers, enable package logging and select the Diagnostic event at the package level. Per altre informazioni, vedere Risoluzione dei problemi relativi agli strumenti per l'esecuzione del pacchetto.For more information, see Troubleshooting Tools for Package Execution.

È possibile configurare la trasformazione utilizzando Progettazione SSISSSIS o il modello a oggetti.You can configure the transformation by either using the SSISSSIS Designer or the object model. Vedere la Guida per gli sviluppatori per informazioni dettagliate sulla configurazione a livello di codice di questa trasformazione.See the Developer Guide for details about programmatically configuring this transformation.

Configurazione della trasformazione Comando OLE DBConfigure the OLE DB Command Transformation

È possibile aggiungere e configurare una trasformazione Comando OLE DB solo se il pacchetto include almeno un'attività Flusso di dati e un'origine, quale un'origine file flat o un'origine OLE DB.To add and configure an OLE DB Command transformation, the package must already include at least one Data Flow task and a source such as a Flat File source or an OLE DB source. Questa trasformazione viene in genere utilizzata per l'esecuzione di query con parametri.This transformation is typically used for running parameterized queries.

Per configurare la trasformazione Comando OLE DBTo configure the OLE DB Command transformation

  1. In SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)aprire il progetto di Integration ServicesIntegration Services che contiene il pacchetto desiderato.In SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package you want.

  2. In Esplora soluzioni fare doppio clic sul pacchetto per aprirlo.In Solution Explorer, double-click the package to open it.

  3. Fare clic sulla scheda Flusso di dati e quindi, dalla casella degli strumentitrascinare la trasformazione Comando OLE DB sull'area di progettazione.Click the Data Flow tab, and then, from the Toolbox, drag the OLE DB Command transformation to the design surface.

  4. Connettere la trasformazione Comando OLE DB al flusso di dati trascinando un connettore, la freccia verde o la freccia rossa, da un'origine dei dati o una trasformazione precedente alla trasformazione Comando OLE DB.Connect the OLE DB Command transformation to the data flow by dragging a connector—the green or red arrow—from a data source or a previous transformation to the OLE DB Command transformation.

  5. Fare clic con il pulsante destro del mouse sul componente e scegliere Modifica o Visualizza editor avanzato.Right-click the component and select Edit or Show Advanced Editor.

  6. Nella scheda Gestioni connessioni selezionare una gestione connessione OLE DB dall'elenco Gestione connessione .On the Connection Managers tab, select an OLE DB connection manager in the Connection Manager list. Per altre informazioni, vedere Gestione connessione OLE DB.For more information, see OLE DB Connection Manager.

  7. Fare clic sulla scheda Proprietà componente e quindi sul pulsante con i puntini di sospensione (...) nella casella SqlCommand .Click the Component Properties tab and click the ellipsis button (…) in the SqlCommand box.

  8. In Editor valore stringadigitare l'istruzione SQL con parametri usando un punto interrogativo (?) come indicatore per ogni parametro.In the String Value Editor, type the parameterized SQL statement using a question mark (?) as the parameter marker for each parameter.

  9. Fare clic su Aggiorna.Click Refresh. Quando si fa clic su Aggiornala trasformazione crea una colonna per ogni parametro nella raccolta Colonne esterne e imposta la proprietà DBParamInfoFlags.When you click Refresh, the transformation creates a column for each parameter in the External Columns collection and sets the DBParamInfoFlags property.

  10. Fare clic sulla scheda Proprietà input e output .Click the Input and Output Properties tab.

  11. Espandere Input comando OLE DBe quindi Colonne esterne.Expand OLE DB Command Input, and then expand External Columns.

  12. Verificare che in Colonne esterne sia elencata una colonna per ogni parametro nell'istruzione SQL.Verify that External Columns lists a column for each parameter in the SQL statement. I nomi delle colonne sono Param_0, Param_1e così via.The column names are Param_0, Param_1, and so on.

    Tali nomi non devono essere modificati.You should not change the column names. Se si modificano i nomi della colonna, Integration ServicesIntegration Services genera un errore di convalida per la trasformazione Comando OLE DB.If you change the column names, Integration ServicesIntegration Services generates a validation error for the OLE DB Command transformation.

    Inoltre, non modificare il tipo di dati.Also, you should not change the data type. La proprietà DataType di ogni colonna viene impostata sul tipo di dati corretto.The DataType property of each column is set to the correct data type.

  13. Se in Colonne esterne non è elencata alcuna colonna, sarà necessario aggiungerle manualmente.If External Columns lists no columns you must add them manually.

    • Fare clic su Aggiungi colonna una volta per ogni parametro nell'istruzione SQL.Click Add Column one time for each parameter in the SQL statement.

    • Modificare i nomi delle colonne in Param_0, Param_1e così via.Update the column names to Param_0, Param_1, and so on.

    • Specificare un valore nella proprietà DBParamInfoFlags.Specify a value in the DBParamInfoFlags property. Tale valore deve corrispondere a un valore dell'enumerazione OLE DB DBPARAMFLAGSENUM.The value must match a value in the OLE DB DBPARAMFLAGSENUM enumeration. Per ulteriori informazioni, vedere la documentazione di riferimento di OLE DB.For more information, see the OLE DB reference documentation.

    • Specificare il tipo di dati della colonna e, a seconda del tipo di dati, specificarne anche la tabella codici, la lunghezza, la precisione e la scala.Specify the data type of the column and, depending on the data type, specify the code page, length, precision, and scale of the column.

    • Per eliminare un parametro non usato, selezionarlo in Colonne esternee fare clic su Rimuovi colonna.To delete an unused parameter, select the parameter in External Columns, and then click Remove Column.

    • Fare clic su Mapping colonne ed eseguire il mapping delle colonne nell'elenco Colonne di input disponibili ai parametri nell'elenco Colonne di destinazione disponibili .Click Column Mappings and map columns in the Available Input Columns list to parameters in the Available Destination Columns list.

  14. Scegliere OK.Click OK.

  15. Per salvare il pacchetto aggiornato, scegliere Salva dal menu File .To save the updated package, click Save on the File menu.

Vedere ancheSee Also

Flusso di dati Data Flow
Trasformazioni di Integration ServicesIntegration Services Transformations