Condividi tramite


Origine OLE DB

Data aggiornamento: 15 settembre 2007

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 dei database di Microsoft Access o di SQL Server.

[!NOTA] Per caricare dati da un'origine dei dati che utilizza Microsoft Office Excel 2007, utilizzare un'origine OLE DB. Non è possibile utilizzare un'origine Excel per caricare dati da un'origine dei dati Excel 2007. Per ulteriori informazioni, vedere Gestione connessione OLE DB. Per caricare dati da un'origine dei dati che utilizza Microsoft Office Excel 2003 o versione precedente, utilizzare un'origine Excel. Per ulteriori informazioni, vedere Origine 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 dei dati da cui è possibile creare una gestione connessione OLE DB, rendendo disponibili origini dei dati e viste origine dati all'origine OLE DB. Per ulteriori informazioni, vedere Origine dei 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 subquery con parametri perché l'origine OLE DB non può dedurre informazioni del parametro tramite il provider OLE DB. Tuttavia, è possibile utilizzare un'espressione per concatenare i valori del parametro 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 e mappare i parametri alle variabili utilizzando la 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 nell'elenco viene mappato al primo punto interrogativo (?) nell'istruzione SQL, il secondo al secondo punto interrogativo (?) 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 @. L'ordine in cui i parametri compaiono nell'elenco Mapping è irrilevante.

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

Da Microsoft SQL Server 2005 Service Pack 2 (SP2) è possibile registrare le chiamate eseguite dall'origine OLE DB a provider di dati esterni. Questa nuova funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi al caricamento di dati da origini dei dati esterne da parte dell'origine OLE DB. Per registrare le chiamate eseguite dall'origine OLE DB a un provider di dati esterno, abilitare 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:

Vedere anche

Concetti

Destinazione OLE DB
Variabili in Integration Services
Creazione del flusso di dati di un pacchetto

Altre risorse

Origini di Integration Services

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

15 settembre 2007

Nuovo contenuto:
  • Spiegazione relativa a come non è possibile utilizzare subquery con parametri in una gestione connessione OLE DB.

12 dicembre 2006

Nuovo contenuto:
  • Aggiunta di una nota sull'utilizzo di origini dei dati Excel 2007.
  • Aggiunta di informazioni relative a nuovi messaggi di registrazione di SQL Server 2005 SP2 che consentono agli utenti di risolvere i problemi relativi alle chiamate che l'origine esegue a provider di dati esterni.

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta delle informazioni sull'utilizzo di istruzioni SQL con parametri.