Origine OLE DBOLE DB Source

L'origine OLE DB consente di estrarre dati da un'ampia gamma di database relazionali conformi con OLE DB, tramite una tabella o vista di database oppure un comando SQL.The OLE DB source extracts data from a variety of OLE DB-compliant relational databases by using a database table, a view, or an SQL command. L'origine OLE DB consente ad esempio di estrarre dati dalle tabelle nei database di MicrosoftMicrosoft Office Access o SQL ServerSQL Server .For example, the OLE DB source can extract data from tables in MicrosoftMicrosoft Office Access or SQL ServerSQL Server databases.

Nota

Se l'origine dati è MicrosoftMicrosoft Office Excel 2007, è richiesta una gestione connessione diversa rispetto alle versioni precedenti di Excel.If the data source is MicrosoftMicrosoft Office Excel 2007, the data source requires a different connection manager than earlier versions of Excel. Per altre informazioni, vedere Connessione a una cartella di lavoro di Excel.For more information, see Connect to an Excel Workbook.

Sono disponibili quattro diverse modalità di accesso ai dati per l'estrazione dei dati:The OLE DB source provides four different data access modes for extracting data:

  • Vista o tabella.A table or view.

  • Vista o tabella specificata in una variabile.A table or view specified in a variable.

  • Risultato di un'istruzione SQL.The results of an SQL statement. La query può essere con parametri.The query can be a parameterized query.

  • Risultato di un'istruzione SQL archiviata in una variabile.The results of an SQL statement stored in a variable.

Nota

Quando si utilizza un'istruzione SQL per richiamare una stored procedure che restituisce risultati da una tabella temporanea, utilizzare l'opzione WITH RESULT SETS per definire metadati per il set di risultati.When you use an SQL statement to invoke a stored procedure that returns results from a temporary table, use the WITH RESULT SETS option to define metadata for the result set.

Se si utilizza una query con parametri, sarà possibile eseguire il mapping delle variabili ai parametri per specificare i valori dei singoli parametri nelle istruzioni SQL.If you use a parameterized query, you can map variables to parameters to specify the values for individual parameters in the SQL statements.

Per connettersi a un'origine dei dati questa origine utilizza una gestione connessione OLE DB, che specifica il provider OLE DB da utilizzare.This source uses an OLE DB connection manager to connect to a data source, and the connection manager specifies the OLE DB provider to use. Per altre informazioni, vedere Gestione connessione OLE DB.For more information, see OLE DB Connection Manager.

In un progetto di Integration ServicesIntegration Services viene inoltre fornito l'oggetto di origine dati da cui è possibile creare una gestione connessione OLE DB, rendendo disponibili origini dati e relative viste all'origine OLE DB.An Integration ServicesIntegration Services project also provides the data source object from which you can create an OLE DB connection manager, making data sources and data source views available to the OLE DB source.

A seconda del provider OLE DB, l'origine OLE DB può presentare le limitazioni seguenti:Depending on the OLE DB provider, some limitations apply to the OLE DB source:

  • Il provider OLE DB MicrosoftMicrosoft per Oracle non supporta i tipi di dati Oracle BLOB, CLOB, NCLOB, BFILE e UROWID e l'origine OLE DB non è in grado di estrarre dati da tabelle che contengono colonne con tali tipi di dati.The MicrosoftMicrosoft OLE DB provider for Oracle does not support the Oracle data types BLOB, CLOB, NCLOB, BFILE, OR UROWID, and the OLE DB source cannot extract data from tables that contain columns with these data types.

  • I provider IBM OLE DB per DB2 e MicrosoftMicrosoft OLE DB per DB2 non supportano l'utilizzo di comandi SQL che chiamano stored procedure.The IBM OLE DB DB2 provider and MicrosoftMicrosoft OLE DB DB2 provider do not support using an SQL command that calls a stored procedure. Quando viene utilizzato un comando di questo tipo l'origine OLE DB non è in grado di creare i metadati delle colonne e, di conseguenza, i dati delle colonne non sono disponibili per i componenti del flusso di dati che seguono l'origine OLE DB nel flusso di dati. Questo impedisce di completare l'esecuzione del flusso di dati.When this kind of command is used, the OLE DB source cannot create the column metadata and, as a result, the data flow components that follow the OLE DB source in the data flow have no column data available and the execution of the data flow fails.

    L'origine OLE DB include un output regolare e un output degli errori.The OLE DB source has one regular output and one error output.

Utilizzo di istruzioni SQL con parametriUsing Parameterized SQL Statements

Per l'estrazione dei dati l'origine OLE DB può utilizzare un'istruzione SQL,The OLE DB source can use an SQL statement to extract data. che può essere costituita da un'istruzione SELECT o EXEC.The statement can be a SELECT or an EXEC statement.

L'origine OLE DB utilizza una gestione connessione OLE DB per connettersi all'origine dei dati da cui estrae i dati.The OLE DB source uses an OLE DB connection manager to connect to the data source from which it extracts data. A seconda del provider utilizzato dalla gestione connessione OLE DB e del sistema di gestione di database relazionali (RDBMS) a cui si connette la gestione connessione, verranno applicate regole diverse per la denominazione e l'elencazione dei parametri.Depending on the provider that the OLE DB connection manager uses and the Relational Database Management System (RDBMS) that the connection manager connects to, different rules apply to the naming and listing of parameters. Se i nomi dei parametri vengono restituiti dal sistema RDBMS, sarà possibile utilizzare nomi di parametro per eseguire il mapping dei parametri di un elenco di parametri a quelli inclusi in un'istruzione SQL. In caso contrario, sui parametri viene eseguito il mapping a quelli dell'istruzione SQL in base alla posizione ordinale nell'elenco dei parametri.If the parameter names are returned from the RDBMS, you can use parameter names to map parameters in a parameter list to parameters in an SQL statement; otherwise, the parameters are mapped to the parameter in the SQL statement by their ordinal position in the parameter list. I tipi di nomi di parametro supportati variano a seconda del provider.The types of parameter names that are supported vary by provider. Alcuni provider richiedono ad esempio che vengano utilizzati i nomi delle variabili o delle colonne, mentre altri richiedono l'utilizzo di nomi simbolici, quali 0 o Param0.For example, some providers require that you use the variable or column names, whereas some providers require that you use symbolic names such as 0 or Param0. Per informazioni sui nomi di parametro da utilizzare nelle istruzioni SQL, vedere la documentazione specifica del provider.You should see the provider-specific documentation for information about the parameter names to use in SQL statements.

Quando si utilizza una gestione connessione OLE DB, non è possibile utilizzare sottoquery con parametri, perché l'origine OLE DB non può derivare le informazioni sui parametri tramite il provider OLE DB.When you are use an OLE DB connection manager, you cannot use parameterized subqueries, because the OLE DB source cannot derive parameter information through the OLE DB provider. Tuttavia, è possibile usare un'espressione per concatenare i valori dei parametri nella stringa di query e impostare la proprietà SqlCommand dell'origine. In Progettazione SSISSSIS , è possibile configurare un'origine OLE DB usando la finestra di dialogo Editor origine OLE DB ed eseguire il mapping dei parametri alle variabili nella finestra di dialogo Imposta parametri query .However, you can use an expression to concatenate the parameter values into the query string and to set the SqlCommand property of the source.In SSISSSIS Designer, you configure an OLE DB source by using the OLE DB Source Editor dialog box and map the parameters to variables in the Set Query Parameter dialog box.

Indicazione dei parametri tramite la posizione ordinaleSpecifying Parameters by Using Ordinal Positions

Se non viene restituito alcun nome di parametro, gli indicatori di parametro a cui viene eseguito il mapping dei parametri in fase di esecuzione sono determinati dall'ordine in cui compaiono i parametri nell'elenco Parametri della finestra di dialogo Imposta parametri query .If no parameter names are returned, the order in which the parameters are listed in the Parameters list in the Set Query Parameter dialog box governs which parameter marker they are mapped to at run time. Viene eseguito il mapping del primo parametro dell'elenco al primo ?The first parameter in the list maps to the first ? nell'istruzione SQL, il secondo al secondo? e così via.in the SQL statement, the second to the second ?, and so on.

L'istruzione SQL seguente seleziona righe dalla tabella Product AdventureWorks2012AdventureWorks2012 del database .The following SQL statement selects rows from the Product table in the AdventureWorks2012AdventureWorks2012 database. Sul primo parametro nell'elenco Mapping viene eseguito il mapping al primo parametro nella colonnaColor, mentre sul secondo parametro viene eseguito il mapping alla colonna Size.The first parameter in the Mappings list maps to the first parameter to the Color column, the second parameter to the Size column.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

I nomi di parametro sono ininfluenti.The parameter names have no effect. Se ad esempio un determinato parametro ha lo stesso nome della colonna a cui si riferisce, ma non compare nella posizione ordinale corretta nell'elenco Parameters , per il mapping dei parametri eseguito in fase di esecuzione verrà comunque usata la posizione ordinale del parametro e non il suo nome.For example, if a parameter is named the same as the column to which it applies, but not put in the correct ordinal position in the Parameters list, the parameter mapping that occurs at run time will use the ordinal position of the parameter, not the parameter name.

Per il comando EXEC, come nomi di parametro è in genere necessario utilizzare i nomi delle variabili che specificano i valori dei parametri nella procedura.The EXEC command typically requires that you use the names of the variables that provide parameter values in the procedure as parameter names.

Indicazione dei parametri tramite i nomiSpecifying Parameters by Using Names

Se il sistema RDBMS restituisce i nomi effettivi dei parametri, sui parametri utilizzati dalle istruzioni SELECT ed EXEC verrà eseguito il mapping in base al nome.If the actual parameter names are returned from the RDBMS, the parameters used by a SELECT and EXEC statement are mapped by name. I nomi dei parametri devono essere quelli previsti dalla stored procedure eseguita dall'istruzione SELECT o EXEC.The parameter names must match the names that the stored procedure, run by the SELECT statement or the EXEC statement, expects.

L'istruzione SQL seguente esegue la stored procedure uspGetWhereUsedProductID disponibile nel database AdventureWorks2012AdventureWorks2012 .The following SQL statement runs the uspGetWhereUsedProductID stored procedure, available in the AdventureWorks2012AdventureWorks2012 database.

EXEC uspGetWhereUsedProductID ?, ?

La stored procedure prevede che i valori dei parametri vengano specificati dalle variabili @StartProductID e @CheckDate.The stored procedure expects the variables, @StartProductID and @CheckDate, to provide parameter values. L'ordine in cui i parametri sono visualizzati nell'elenco Mapping è irrilevante.The order in which the parameters appear in the Mappings list is irrelevant. L'unico requisito consiste nel fatto che i nomi dei parametri devono coincidere con quelli delle variabili nella stored procedure, incluso il simbolo @.The only requirement is that the parameter names match the variable names in the stored procedure, including the @ sign.

Mapping di parametri a variabiliMapping Parameters to Variables

Il mapping dei parametri alle variabili che ne specificano i valori avviene in fase di esecuzione.The parameters are mapped to variables that provide the parameter values at run time. Sebbene in genere vengano usate variabili definite dall'utente, è possibile usare anche le variabili di sistema disponibili in Integration ServicesIntegration Services .The variables are typically user-defined variables, although you can also use the system variables that Integration ServicesIntegration Services provides. Se si utilizzano variabili definite dall'utente, verificare che il tipo di dati impostato sia compatibile con quello della colonna a cui fa riferimento il parametro di cui viene eseguito il mapping.If you use user-defined variables, make sure that you set the data type to a type that is compatible with the data type of the column that the mapped parameter references. Per altre informazioni, vedere Variabili di Integration Services (SSIS).For more information, see Integration Services (SSIS) Variables.

Risoluzione dei problemi relativi all'origine OLE DBTroubleshooting the OLE DB Source

È possibile registrare le chiamate eseguite dall'origine OLE DB a provider di dati esterni.You can log the calls that the OLE DB source makes to external data providers. Questa funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi al caricamento di dati da origini esterne da parte dell'origine OLE DB.You can use this logging capability to troubleshoot the loading of data from external data sources that the OLE DB source performs. Per registrare le chiamate eseguite dall'origine OLE DB a provider di dati esterni, attivare la registrazione dei pacchetti e selezionare l'evento Diagnostic a livello del pacchetto.To log the calls that the OLE DB source 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.

Configurazione dell'origine OLE DBConfiguring the OLE DB Source

È possibile impostare le proprietà a livello di programmazione o tramite Progettazione SSISSSIS .You can set properties programmatically or through SSISSSIS Designer.

Per altre informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor origine OLE DB , fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the OLE DB Source Editor dialog box, click one of the following topics:

Articolo di Wiki sui connettori SSIS con Oraclesul sito Web social.technet.microsoft.com.Wiki article, SSIS with Oracle Connectors, on social.technet.microsoft.com.

Vedere ancheSee Also

Destinazione OLE DB OLE DB Destination
Integration Services ( SSIS ) Variabili Integration Services (SSIS) Variables
Flusso di datiData Flow