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 MicrosoftOffice SharePoint Server 2007 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 crea 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 Creazione di set di dati del report da un database Oracle.
Importante |
---|
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 Office SharePoint Server , 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 |
---|---|---|---|
Disattiva 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 outer join sinistri avranno esito negativo oppure restituiranno risultati errati. Il convertitore di query Oracle di Reporting Services utilizza l'hint di ottimizzazione NO_MERGE in alcuni outer join sinistri. 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 disattivare 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. |
DisableTS 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 che tali espressioni vengano create spesso, questa opzione può essere impostata su True in modo da eseguire automaticamente il cast necessario. |