Condividi tramite


Creating and Using Oracle-Based Report Models

È possibile generare modelli di report basati su un database Oracle versione 9.2.0.3 o successiva mediante Progettazione modelli, Gestione report o Microsoft Office SharePoint Server 2007 o SharePoint Server 2010 in modalità integrata SharePoint.

Per generare modelli basati su database Oracle, è necessario eseguire un client Oracle versione 9.2.0.3 o successiva. La directory del client Oracle deve trovarsi nel percorso di sistema e sia il servizio Windows ReportServer che il servizio Web ReportServer devono disporre delle autorizzazioni per l'accesso ai file archiviati in questa directory.

Verificare inoltre quanto segue:

  • L'estensione per l'elaborazione dati Oracle di Reporting Services è disponibile nell'installazione di Reporting Services in uso.

  • Il client Oracle è installato in una cartella accessibile da parte del servizio Windows ReportServer e del servizio Web ReportServer.

  • Il servizio Windows ReportServer, il servizio Web ReportServer e gli account di esecuzione automatica devono disporre dell'accesso in lettura ed esecuzione all'installazione del client Oracle.

Stringhe di connessione

Quando si compila un modello di report basato su un database Oracle, la stringa di connessione risulta analoga alla seguente:

Origine dati="Oracle9";Unicode="True"

dove "Oracle9" rappresenta il nome logico del server Oracle.

Nota

Quando si specifica una stringa di connessione al database Oracle, il valore ServerName deve corrispondere ai nomi definiti nel file di configurazione tnsnames.ora.

Per ulteriori informazioni su come connettersi a un'origine dati Oracle, vedere Tipo di connessione Oracle (SSRS).

Nota importanteImportante

Quando si genera la vista origine dati per il modello Oracle, fare clic sul pulsante Avanzate nella pagina Selezione origine dati della Creazione guidata vista origine dati e nella finestra di dialogo Opzioni avanzate vista origine dati selezionare il nome dello schema per filtrare gli oggetti del database. Selezionare gli oggetti di database da aggiungere al modello.

Limitazioni funzionali

A causa del funzionamento sottostante del database Oracle, esistono alcune differenze di comportamento nel convertitore di query SMDL (Semantic Model Definition Language) se utilizzato con un database Oracle. Tale funzionamento include differenze minori nelle funzionalità e nelle opzioni di configurazione necessarie per controllare le soluzioni alternative a bug e limitazioni di progettazione del database di destinazione. Di seguito sono descritte tali differenze.

Tipi di dati

SMDL supporta solo i tipi di dati Oracle seguenti.

Tipo SMDL

Tipo Oracle

String

CHAR, NCHAR, VARCHAR2, NVARCHAR2, LONG, CLOB, NCLOB

Decimale o intero

NUMBER

Booleano

NUMBER

Se una colonna Oracle è contrassegnata come booleana nel file della vista origine dati (DSV), la colonna sottostante deve essere di tipo NUMBER e contenere solo i valori 0, 1 o NULL.

Date

DATE, TIMESTAMP

Binario

RAW, LONGRAW, BLOB

SMDL non supporta alcun tipo di dati non elencato sopra, tra cui:

  • BINARY_FLOAT

  • BINARY_DOUBLE

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIME ZONE

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • ROWID

  • UROWID

  • BFILE

Durante la generazione automatica di un modello di report mediante Gestione report o un prodotto SharePoint, le colonne contenenti tipi di dati non supportati sono escluse dal modello. Se un tipo di dati non supportato fa parte della chiave primaria, l'intera entità non viene generata.

Quando si crea un modello di report mediante Progettazione report, al modello vengono aggiunti tutti gli elementi. Sarà pertanto necessario applicare un filtro per individuare manualmente tutti i tipi di dati non supportati elencati sopra ai fini del perfezionamento del modello.

Funzioni

Il comportamento di alcune funzioni può dipendere dal database sottostante. Se si specifica un valore minore di zero come argomento della lunghezza nella funzione Left, Right o Substring, il comportamento non è definito in SMQL.

Opzioni di configurazione

A seconda dell'origine dei dati sottostante, sono disponibili numerose opzioni di configurazione che consentono di modificare il funzionamento del convertitore di query in base alle specifiche dell'origine dei dati e dell'ambiente. Le opzioni seguenti sono definite nel file RSReportServer.config, il quale viene installato per impostazione predefinita nella cartella <SysDrive>:\Programmi\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\.

Nome

Tipo

Valori predefiniti per la definizione

Descrizione

Disabilita

NO_MERGE

InLeftOuters

Booleano

False

L'opzione disattiva l'hint di ottimizzazione NO_MERGE generato per le query Oracle.

A causa di problemi tecnici nell'hint di ottimizzazione di Oracle, alcune classi di query che includono left outer join avranno esito negativo oppure restituiranno risultati errati. Il convertitore di query Oracle di Reporting Services utilizza l'hint di ottimizzazione NO_MERGE in alcuni left outer join. Sebbene l'esecuzione della query in questo caso risulti corretta, le prestazioni potrebbero essere ridotte. Se si ottiene un aggiornamento del software Oracle in grado di risolvere il problema, l'opzione potrebbe essere impostata su True per disabilitare la soluzione alternativa NO_MERGE.

EnableUnistr

Booleano

False

L'opzione impone l'utilizzo esplicito della funzione UNISTR per rappresentare valori letterali Unicode in query Oracle.

In genere, quando le impostazioni locali del database corrispondono a quelle delle costanti stringa contenute nella query, le costanti stringa Unicode possono essere generate come stringhe regolari nella query. Quando si utilizzano valori letterali come costanti inesistenti nella tabella codici definita in NLS_CharacterSet dal database Oracle, quest'ultimo richiede l'utilizzo della funzione esplicita UNISTR per rappresentare i valori letterali Unicode. Se si imposta questa opzione su True, tutte le costanti stringa Unicode nelle query verranno codificate mediante la funzione UNISTR di Oracle.  

DisableTSTruncation

Troncamento

Booleano

False

L'opzione disattiva il troncamento esplicito di frazioni di secondo in TIMESTAMP per la conversione a DATE.

A causa del funzionamento circolare predefinito di Oracle, il quale esegue cast di timestamp come date e poiché determinate operazioni con le date richiedono date piuttosto che timestamp, l'unico modo per garantire l'accuratezza di tali operazioni consiste nel troncare in modo esplicito le frazioni di secondo dai tipi di dati timestamp prima della conversione nella data. Questo troncamento si applica alle date, anche perché il convertitore di query di Oracle non dispone dell'accesso alle informazioni sui tipi Oracle sottostanti per distinguere tra timestamp e data. Ciò determina un lieve impatto sulle prestazioni in diverse operazioni con le date. Nel caso che nessun timestamp venga utilizzato nei database di destinazione, tale opzione può essere impostata su True, omettendo il troncamento non necessario.

EnableMath

OpCasting

Booleano

False

L'opzione attiva il casting dei risultati di operazioni matematiche in un formato decimale di Microsoft .NET Framework.

Alcune operazioni matematiche nelle query possono restituire valori decimali in combinazione con precisione e scala non rappresentabili nel tipo di dati decimale di .NET Framework. Sebbene sia possibile eseguire il cast dei risultati di tali espressioni decimali come decimali, è improbabile che gli utenti di Generatore report siano a conoscenza del fatto che si tratta di una necessità in fase di progettazione. Nel caso in cui tali espressioni vengano create con frequenza, questa opzione può essere impostata su True in modo da eseguire automaticamente il cast necessario.

Cronologia modifiche

Contenuto aggiornato

Aggiornato il nome dell'opzione di configurazione che disabilita il troncamento esplicito di frazioni di secondo in TIMESTAMP per la conversione a DATE. Il nome corretto dell'opzione è DisableTSTruncation.