Origine OLE DB
L'origine OLE DB consente di estrarre dati da un'ampia gamma di database relazionali compatibili con OLE DB, tramite una tabella o vista di database oppure un comando SQL. L'origine OLE DB consente ad esempio di estrarre dati dalle tabelle nei database di Microsoft Office Access o SQL Server.
[!NOTA]
Se l'origine dati è Microsoft Office Excel 2007, è richiesta una gestione connessione diversa rispetto alle versioni precedenti di Excel. Per ulteriori informazioni, vedere Procedura: Connessione a una cartella di lavoro di Excel.
Sono disponibili quattro diverse modalità di accesso ai dati per l'estrazione dei dati:
Vista o tabella.
Vista o tabella specificata in una variabile.
Risultato di un'istruzione SQL. La query può essere con parametri.
Risultato di un'istruzione SQL archiviata in una variabile.
Se si utilizza una query con parametri, sarà possibile mappare variabili ai parametri per specificare i valori dei singoli parametri nelle istruzioni SQL.
Per connettersi a un'origine dei dati questa origine utilizza una gestione connessione OLE DB, che specifica il provider OLE DB da utilizzare. Per ulteriori informazioni, vedere Gestione connessione OLE DB.
Un progetto di Integration Services fornisce inoltre l'oggetto origine dati da cui è possibile creare una gestione connessione OLE DB, rendendo disponibili origini dati e viste origine dati all'origine OLE DB. Per ulteriori informazioni, vedere Origine dati (SSIS) e Vista origine dati (SSIS).
A seconda del provider OLE DB, l'origine OLE DB può presentare le limitazioni seguenti:
Il provider OLE DB Microsoft 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.
I provider IBM OLE DB per DB2 e Microsoft OLE DB per DB2 non supportano l'utilizzo di comandi SQL che chiamano 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.
L'origine OLE DB include un output regolare e un output degli errori.
Utilizzo di istruzioni SQL con parametri
Per l'estrazione dei dati l'origine OLE DB può utilizzare un'istruzione SQL, che può essere costituita da un'istruzione SELECT o EXEC.
L'origine OLE DB utilizza una gestione connessione OLE DB per connettersi all'origine dei dati da cui estrae i dati. 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. Se i nomi dei parametri vengono restituiti dal sistema RDBMS, sarà possibile utilizzare nomi di parametro per mappare i parametri di un elenco di parametri a quelli inclusi in un'istruzione SQL. In caso contrario, i parametri vengono mappati a quelli dell'istruzione SQL in base alla posizione ordinale nell'elenco dei parametri. I tipi di nomi di parametro supportati variano a seconda del 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. Per informazioni sui nomi di parametro da utilizzare nelle istruzioni SQL, vedere la documentazione specifica del provider.
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. Tuttavia, è possibile utilizzare un'espressione per concatenare i valori dei parametri nella stringa di query e impostare la proprietà SqlCommand dell'origine. In Progettazione SSIS, è possibile configurare un'origine OLE DB utilizzando la finestra di dialogo Editor origine OLE DB ed eseguire il mapping dei parametri alle variabili nella finestra di dialogo Imposta parametri query.
Indicazione dei parametri tramite la posizione ordinale
Se non viene restituito alcun nome di parametro, gli indicatori di parametro a cui sono mappati i parametri in fase di esecuzione sono determinati dall'ordine in cui compaiono i parametri nell'elenco Parametri della finestra di dialogo Imposta parametri query. Il primo parametro dell'elenco viene mappato al primo ? nell'istruzione SQL, il secondo al secondo? e così via.
L'istruzione SQL seguente seleziona righe dalla tabella Product del database AdventureWorks. Il primo parametro nell'elenco Mapping viene mappato al primo parametro nella colonna Color, mentre il secondo parametro viene mappato alla colonna Size.
SELECT * FROM Production.Product WHERE Color = ? AND Size = ?
I nomi di parametro sono ininfluenti. 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 Parametri, per il mapping dei parametri eseguito in fase di esecuzione verrà comunque utilizzata la posizione ordinale del parametro e non il suo nome.
Per il comando EXEC, come nomi di parametro è in genere necessario utilizzare i nomi delle variabili che specificano i valori dei parametri nella procedura.
Indicazione dei parametri tramite i nomi
Se il sistema RDBMS restituisce i nomi effettivi dei parametri, i parametri utilizzati dalle istruzioni SELECT ed EXEC verranno mappati in base al nome. I nomi dei parametri devono essere quelli previsti dalla stored procedure eseguita dall'istruzione SELECT o EXEC.
L'istruzione SQL seguente esegue la stored procedure uspGetWhereUsedProductID disponibile nel database AdventureWorks.
EXEC uspGetWhereUsedProductID ?, ?
La stored procedure prevede che i valori dei parametri vengano specificati dalle variabili @StartProductID e @CheckDate. L'ordine in cui i parametri compaiono nell'elenco Mapping è irrilevante. L'unico requisito consiste nel fatto che i nomi dei parametri devono coincidere con quelli delle variabili nella stored procedure, incluso il simbolo @.
Mapping di parametri a variabili
Il mapping dei parametri alle variabili che ne specificano i valori avviene in fase di esecuzione. Sebbene in genere vengano utilizzate variabili definite dall'utente, è possibile utilizzare anche le variabili di sistema disponibili in Integration Services. Se si utilizzano variabili definite dall'utente, verificare che il tipo di dati impostato sia compatibile con quello della colonna a cui fa riferimentto il parametro mappato. Per ulteriori informazioni, vedere Variabili in Integration Services.
Risoluzione dei problemi relativi all'origine OLE DB
È possibile registrare le chiamate eseguite dall'origine OLE DB a provider di dati esterni. 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. 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. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi all'esecuzione di pacchetti.
Configurazione dell'origine OLE DB
È possibile impostare le proprietà a livello di programmazione oppure tramite Progettazione SSIS.
Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor origine OLE DB, fare clic su uno degli argomenti seguenti:
Nella finestra di dialogo Editor avanzato sono disponibili le proprietà che è possibile impostare a livello di programmazione. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di programmazione, fare clic su uno degli argomenti seguenti:
Per ulteriori informazioni sulle procedure per l'impostazione delle proprietà, fare clic su uno degli argomenti seguenti:
Procedura: Mapping dei parametri di query a variabili in un componente di un flusso di dati
Procedura: Impostazione delle proprietà di un componente flusso di dati
Procedura: Ordinamento dei dati per le trasformazioni Unione e Merge Join
|