CREATE NICKNAME istruzione
L'istruzione CREATE NICKNAME definisce un nickname per un oggetto origine dati.
chiamata
Questa istruzione può essere incorporata in un programma applicativo o emessa mediante l'utilizzo di istruzioni SQL dinamiche. È un'istruzione eseguibile che può essere preparata dinamicamente solo se il comportamento di esecuzione di DYNAMICRULES è attivo per il pacchetto (SQLSTATE 42509).
Autorizzazione
- Autorità CREATETAB sul database federato, nonché una delle seguenti:
- Autorità IMPLICIT_SCHEMA sul database federato, se il nome schema implicito o esplicito del nickname non esiste
- Privilegio CREATEIN sullo schema, se il nome dello schema del nickname fa riferimento a uno schema esistente
- Autorizzazione SCHEMAADM sullo schema, se il nome schema del nickname fa riferimento ad uno schema esistente
- Autorizzazione DBADM
Per le origini dati che richiedono un'associazione utente, i privilegi posseduti dall'ID autorizzazione sull'origine dati devono includere il privilegio per selezionare i dati dall'oggetto rappresentato dal nickname.
Per sostituire un nickname esistente, l'ID di autorizzazione dell'istruzione deve essere il proprietario del nickname esistente (SQLSTATE 42501).
Sintassi
- 1 The specified distinct type cannot have any data type constraints and the source type cannot be an anchored data type (SQLSTATE 428H2).
- 2 The FOR BIT DATA clause can be specified in any order with the other column constraints that follow.
- 3 DISABLE QUERY OPTIMIZATION is not supported for a unique or primary key constraint.
Descrizione
- OPPURE SOSTITUIRE
- Specifica di sostituire la definizione per il nickname se ne esiste uno sul server corrente. La definizione esistente viene effettivamente eliminata prima che la nuova definizione venga sostituita nel catalogo, con l'eccezione che i privilegi concessi sul nickname non vengono influenzati. Questa opzione viene ignorata se una definizione per il nickname non esiste sul server corrente. Questa opzione può essere specificata solo dal proprietario dell'oggetto.
- nickname
- Specifica un nickname, l'identificatore utilizzato dal server federato per l'oggetto origine dati. Il nickname, incluso il qualificatore implicito o esplicito, non deve identificare una tabella, una vista, un nickname o un alias descritti nel catalogo. Il nome dello schema non deve iniziare con 'SYS' (SQLSTATE 42939).
- FOR nome - oggetto - remoto
- Specifica un identificativo. Per le origini dati che supportano i nomi schema, si tratta di un identificativo in tre parti con il formato data-source-name.remote-schema-name.remote-table-name. Per le origini dati che non supportano i nomi schema, questo è un identificativo in due parti con il formato data-source-name.remote-table-name.
- nome - origine dati
- Denomina l'origine dati che contiene la tabella o la vista per cui viene creato il nickname. Il nome - origine - dati è lo stesso nome assegnato al nome - server nell'istruzione CREATE SERVER.
- nome - schema - remoto
- Denomina lo schema a cui appartiene la tabella o la vista. Se il nome dello schema remoto contiene caratteri speciali o minuscoli, deve essere racchiuso tra virgolette.
- nome - tabella - remota
- Denomina l'oggetto dell'origine dati specifico (ad esempio una tabella, un alias di una tabella o una vista) per cui viene creato il nickname. La tabella non può essere una tabella temporanea dichiarata (SQLSTATE 42995). Se il nome della tabella remota contiene caratteri speciali o minuscoli, deve essere racchiuso tra virgolette doppie.
Per Db2® è anche possibile specificare l'alias di una tabella, vista o nickname. Per Db2 for z/OS® o Db2 per IBM® i, è possibile specificare l'alias di una tabella o vista.
- definizione di dati non relazionali
- Definisce i dati a cui è necessario accedere tramite un wrapper non relazionale.
- definizione - colonna - nickname
- Definisce gli attributi locali della colonna per il nickname. Alcuni wrapper richiedono di specificare questi attributi, mentre altri consentono di determinare gli attributi dall'origine dati.
- nome - colonna
- Specifica il nome locale per la colonna. Il nome potrebbe essere diverso dalla colonna corrispondente di nome - oggetto - remoto.
- tipo - dati - locale
- Specifica il tipo di dati locale per la colonna. Alcuni wrapper supportano solo un sottoinsieme di tipi di dati SQL. Per descrizioni di specifici tipi di dati, consultare
CREATE TABLE
. - tipo integrato
- Consultare "CREATE TABLE" per la descrizione dei tipi di dati integrati.
- opzioni - colonna - nickname
- Specifica le opzioni aggiuntive relative alle colonne del nickname.
- Non è null
- Specifica che la colonna non consente valori null.
- CONSTRAINT nome - vincolo
- Denomina il vincolo. Un nome - vincolo non deve identificare un vincolo che è stato già specificato nella stessa istruzione CREATE NICKNAME (SQLSTATE 42710).
Se questa clausola viene omessa, il sistema genera un identificativo lungo 18 byte che è univoco tra gli identificativi dei vincoli esistenti definiti sul nickname. (L'identificativo è composto da 'SQL ' seguito da una sequenza di 15 caratteri numerici generati da una funzione basata su data/ora.)
Quando viene utilizzato con un vincolo PRIMARY KEY o UNIQUE, il nome - vincolo può essere utilizzato come nome di una specifica di indice creata per supportare il vincolo.
- chiave primaria
- Fornisce un metodo abbreviato per definire una chiave primaria composta da una singola colonna. Quindi, se viene specificato PRIMARY KEY nella definizione della colonna C, l'effetto è lo stesso della clausola PRIMARY KEY (C) specificata come clausola separata.
Consultare PRIMARY KEY nella descrizione di unique - constraint.
- UNIQUE
- Questo fornisce un metodo abbreviato per definire una chiave univoca composta da una singola colonna. Quindi, se UNIQUE è specificato nella definizione della colonna C, l'effetto è lo stesso di se la clausola UNIQUE (C) è specificata come clausola separata.
Consultare UNIQUE all'interno della descrizione di unique - constraint.
- riferimenti - clausola
- Ciò fornisce un metodo abbreviato per definire una chiave esterna composta da una singola colonna. Pertanto, se una clausola di riferimento è specificata nella definizione della colonna C, l'effetto è lo stesso come se tale clausola di riferimento fosse stata specificata come parte di una clausola FOREIGN KEY in cui C è l'unica colonna identificata.
Consultare references - clause nella descrizione di referential - constraint.
- CHECK (condizione di controllo)
- Ciò fornisce un metodo abbreviato per definire un vincolo di controllo che si applica a una singola colonna. Vedere la descrizione di CHECK (condizione di controllo).
- OPTIONS
- Indica le opzioni di colonna che vengono aggiunte quando viene creato il nickname. Alcuni wrapper richiedono la specifica di determinate opzioni di colonna.
- nome - opzione - colonna
- Specifica il nome dell'opzione.
- stringa - costante
- Specifica l'impostazione per nome - opzione - colonna come costante della stringa di caratteri.
- vincolo univoco
- Definisce un vincolo di chiave primaria o univoca.
- CONSTRAINT nome - vincolo
- Denomina la chiave primaria o il vincolo univoco.
- UNIQUE (nome - colonna, ...)
- Definisce una chiave univoca composta dalle colonne identificate. Le colonne identificate devono essere definite come NOT NULL. Ogni nome - colonna deve identificare una colonna del nickname e la stessa colonna non deve essere identificata più di una volta.
Il numero di colonne identificate non deve superare 64 e la somma delle relative lunghezze memorizzate non deve superare il limite di lunghezza della chiave di indice per le dimensioni della pagina. Per le lunghezze archiviate delle colonne, consultare
Conteggio byte
inCREATE TABLE
. Per i limiti di lunghezza chiave, consultareLimiti SQL e XQuery
. Nessuna colonna LOB, colonna di tipo distinto basata su un LOB o colonna di tipo strutturato può essere utilizzata come parte di una chiave univoca, anche se l'attributo di lunghezza della colonna è abbastanza piccolo da adattarsi al limite di lunghezza della chiave di indice per la dimensione della pagina (SQLSTATE 54008).La serie di colonne nella chiave univoca non può essere uguale alla serie di colonne nella chiave primaria o un'altra chiave univoca (SQLSTATE 01543). (Se LANGLEVEL è SQL92E o MIA, viene restituito un errore, SQLSTATE 42891.)
La descrizione del nickname come registrato nel catalogo include la chiave univoca e la sua specifica di indice. Verrà creata automaticamente una specifica di indice per le colonne nella sequenza specificata in ordine crescente per ogni colonna. Il nome della specifica di indice sarà lo stesso di nome - vincolo se non è in conflitto con una specifica di indice o indice esistente nello schema in cui viene creato il nickname. Se il nome della specifica dell'indice è in conflitto, il nome sarà 'SQL' seguito da una data / ora di caratteri (yymmddhhmmssxxx), con SYSIBM come nome dello schema.
- PRIMARY KEY (nome - colonna, ...)
- Definisce una chiave primaria composta dalle colonne identificate. La clausola non deve essere specificata più di una volta e le colonne identificate devono essere definite come NOT NULL. Ogni nome - colonna deve identificare una colonna del nickname e la stessa colonna non deve essere identificata più di una volta.
Il numero di colonne identificate non deve superare 64 e la somma delle relative lunghezze memorizzate non deve superare il limite di lunghezza della chiave di indice per le dimensioni della pagina. Per le lunghezze archiviate delle colonne, consultare
Conteggio byte
inCREATE TABLE
. Per i limiti di lunghezza chiave, consultareLimiti SQL e XQuery
. Nessuna colonna LOB, colonna di tipo distinto basata su un LOB o colonna di tipo strutturato può essere utilizzata come parte di una chiave primaria, anche se l'attributo di lunghezza della colonna è sufficientemente piccolo da rientrare nel limite di lunghezza della chiave di indice per la dimensione della pagina (SQLSTATE 54008).La serie di colonne nella chiave primaria non può essere uguale alla serie di colonne in una chiave univoca (SQLSTATE 01543). (Se LANGLEVEL è SQL92E o MIA, viene restituito un errore, SQLSTATE 42891.)
Solo una chiave primaria può essere definita su un nickname.
La descrizione del nickname come registrato nel catalogo include la chiave primaria e la specifica dell'indice. Verrà creata automaticamente una specifica di indice per le colonne nella sequenza specificata in ordine crescente per ogni colonna. Il nome della specifica di indice sarà lo stesso di nome - vincolo se non è in conflitto con una specifica di indice o indice esistente nello schema in cui viene creato il nickname. Se il nome della specifica dell'indice è in conflitto, il nome sarà 'SQL', seguito da una data / ora di caratteri (yymmddhhmmssxxx), con SYSIBM come nome dello schema.
- vincolo referenziale
- Definisce un vincolo referenziale.
- CONSTRAINT nome - vincolo
- Indica il vincolo referenziale.
- FOREIGN KEY (nome - colonna, ...)
- Definisce un vincolo referenziale con il nome - vincolospecificato.
Lasciare che N1 denoti il nickname dell'oggetto dell'istruzione. La chiave esterna del vincolo referenziale è composta dalle colonne identificate. Ogni nome nell'elenco di nomi di colonna deve identificare una colonna di N1, e la stessa colonna non deve essere identificata più di una volta.
Il numero di colonne identificate non deve superare 64e la somma delle relative lunghezze memorizzate non deve superare il limite di lunghezza della chiave di indicizzazione per la dimensione della pagina. Per le lunghezze archiviate delle colonne, consultare
Conteggio byte
inCREATE TABLE
. Per i limiti di lunghezza chiave, consultareLimiti SQL e XQuery
. Le chiavi esterne possono essere definite su colonne di lunghezza variabile la cui lunghezza è maggiore di 255 byte. Nessuna colonna LOB, colonna di tipo distinto basata su un LOB o colonna di tipo strutturato può essere utilizzata come parte di una chiave esterna (SQLSTATE 42962). Ci deve essere lo stesso numero di colonne di chiavi esterne della chiave principale e i tipi di dati delle colonne corrispondenti devono essere compatibili (SQLSTATE 42830). Le descrizioni di due colonne sono compatibili se dispongono di tipi di dati compatibili (entrambe le colonne sono numeriche, stringa di caratteri, grafiche, data/ora o hanno lo stesso tipo distinto). - clausola - riferimenti
- Specifica la tabella principale o il nickname principale e la chiave principale per il vincolo referenziale.
- RIFERIMENTI nome - tabella o nickname
- La tabella o il nickname specificato in una clausola REFERENCES deve identificare una tabella di base o un nickname descritto nel catalogo, ma non deve identificare una tabella di catalogo.
Una restrizione referenziale è un duplicato se la chiave esterna, la chiave principale e la tabella principale o il nickname principale sono uguali alla chiave esterna, alla chiave principale e alla tabella principale o al nickname principale di una restrizione referenziale precedentemente specificata. Le restrizioni referenziali duplicate vengono ignorate e viene restituita un'avvertenza (SQLSTATE 01543).
Nella seguente discussione, lasciare che N2 denoti la tabella principale o il nickname principale identificato e che N1 denoti il nickname che si sta creando (o modificando). N1 e N2 possono essere lo stesso nickname.
La chiave esterna specificata deve avere lo stesso numero di colonne della chiave principale di N2e la descrizione della ncolonna della chiave esterna deve essere confrontabile con quella della ncolonna della chiave principale. Le colonne data / ora non sono considerate paragonabili alle colonne stringa ai fini di questa regola.
Il vincolo referenziale specificato da una clausola FOREIGN KEY definisce una relazione in cui N2 è il principale e N1 è il dipendente.
- (nome - colonna, ...)
- La chiave principale di un vincolo referenziale è composta dalle colonne identificate. Ogni nome - colonna deve essere un nome non qualificato che identifica una colonna di N2. La stessa colonna non deve essere identificata più di una volta.
L'elenco dei nomi delle colonne deve corrispondere alla serie di colonne (in qualsiasi ordine) della chiave primaria o a un vincolo univoco che esiste su N2 (SQLSTATE 42890). Se non viene specificato un elenco di nomi colonna, N2 deve avere una chiave primaria (SQLSTATE 42888). L'omissione dell'elenco dei nomi delle colonne è una specifica implicita delle colonne di quella chiave primaria nella sequenza originariamente specificata.
- attributi - vincolo
- Definisce gli attributi associati all'integrità referenziale o ai vincoli di controllo.
- Non applicato
- Il vincolo non viene applicato dal gestore database durante le normali operazioni, quali l'inserimento, l'aggiornamento o l'eliminazione.
- Attendibile
- I dati possono essere considerati attendibili per conformarsi al vincolo. TRUSTED deve essere utilizzato solo se i dati nella tabella sono noti in modo indipendente per essere conformi al vincolo. I risultati della query potrebbero essere imprevedibili se i dati non sono effettivamente conformi al vincolo. Questa è l'opzione predefinita.
- NON ATTENDIBILE
- I dati non possono essere considerati attendibili per essere conformi al vincolo. NOT TRUSTED è indicato per i casi in cui i dati sono conformi al vincolo per la maggior parte delle righe, ma non è noto indipendentemente che tutte le righe o le aggiunte future saranno conformi al vincolo. Se un vincolo NON è ATTENDIBILE e abilitato per l'ottimizzazione della query, non verrà utilizzato per eseguire ottimizzazioni che dipendono dai dati conformi completamente al vincolo. NOT TRUSTED può essere specificato solo per i vincoli di integrità referenziale (SQLSTATE 42613).
- ABILITA OTTIMIZZAZIONE QUERY
- Il vincolo viene considerato true e può essere utilizzato per l'ottimizzazione della query in circostanze appropriate.
- DISABILITA OTTIMIZZAZIONE QUERY
- Il vincolo non può essere utilizzato per l'ottimizzazione della query.
- vincolo di controllo
- Definisce un vincolo di controllo. Un vincolo di controllo è una condizione di ricerca che non deve essere false o che definisce una dipendenza funzionale tra le colonne.
- CONSTRAINT nome - vincolo
- Indica il vincolo di controllo.
- CHECK (condizione di controllo)
- Definisce un vincolo di controllo. La condizione di controllo deve essere true o sconosciuta per ogni riga del nickname.
- condizione di ricerca
- search - condition ha le seguenti restrizioni:
- Un riferimento di colonna deve essere una colonna del nickname che si sta creando.
- La condizione di ricerca non può contenere un predicato TYPE.
- Non può contenere i seguenti elementi (SQLSTATE 42621):
- Richieste secondarie
- Operazioni di annullamento riferimento o funzioni DEREF in cui l'argomento di riferimento con ambito è diverso dalla colonna OID (object identifier)
- Specifiche CAST con una clausola SCOPE
- Funzioni colonna
- funzioni non deterministiche
- Funzioni definite per avere un'azione esterna
- Funzioni definite dall'utente definite con CONTAINS SQL o READS SQL DATA
- Variabili host
- Indicatori di parametri
- Registri speciali e funzioni integrate che dipendono dal valore di un registro speciale
- Variabili globali
- Riferimenti alle colonne generate diverse dalla colonna identità
- dipendenza funzionale
- Definisce una dipendenza funzionale tra le colonne.
La serie principale di colonne contiene le colonne identificate che precedono immediatamente la clausola DETERMINATE DA. La serie secondaria di colonne contiene le colonne identificate che seguono immediatamente la clausola DETERMINATE DA. Tutte le restrizioni sulla condizione di ricerca si applicano alle colonne della serie principale e della serie secondaria e solo i riferimenti di colonna semplici sono consentiti nella serie di colonne (SQLSTATE 42621). La stessa colonna non deve essere identificata più di una volta nella dipendenza funzionale (SQLSTATE 42709). Il tipo di dati della colonna non deve essere un tipo di dati LOB, un tipo distinto basato su un tipo di dati LOB o un tipo strutturato (SQLSTATE 42962). Nessuna colonna nella serie secondaria di colonne può essere una colonna annullabile (SQLSTATE 42621).
Se un vincolo di controllo viene specificato come parte di una definizione - colonna, un riferimento di colonna può essere fatto solo alla stessa colonna. I vincoli di controllo specificati come parte di una definizione di nickname possono avere riferimenti colonna che identificano le colonne precedentemente definite nell'istruzione CREATE NICKNAME. Le restrizioni di controllo non vengono utilizzate per inconsistenze, condizioni duplicati o condizioni equivalenti, Pertanto, possono essere definiti vincoli di controllo contraddittori o ridondanti, con possibili errori al momento dell'esecuzione.
- FOR SERVER nome - server
- Specifica un server registrato utilizzando l'istruzione CREATE SERVER. Questo server verrà utilizzato per accedere ai dati per il nickname.
- OPTIONS
- Specificare le opzioni di configurazione per il nickname da creare. Le opzioni che è possibile specificare dipendono dall'origine dati dell'oggetto per cui si sta creando un nickname. Per un elenco delle origini dati e le opzioni del nickname che si applicano a ognuna, consultare Opzioni origine dati. Ogni valore di opzione è una stringa di caratteri costante che deve essere racchiusa tra virgolette singole.
Note
- Esempi di oggetti di origine dati relazionali sono: tabelle e viste. Esempi di oggetti di origine dati non relazionali sono: oggetti Documentum o tabelle registrate, file di testo (.txt) e file Microsoft Excel (.xls).
- L'oggetto origine dati a cui fa riferimento il nickname deve già esistere nell'origine dati indicata dal primo qualificatore in nome - oggetto - remoto.
- L'elenco dei tipi di dati dell'origine dati supportati varia da wrapper a wrapper. I tipi di dati delle origini dati XML e REF non sono supportati da nessuno dei wrapper. Il tipo di dati dell'origine dati DECFLOAT è supportato solo dal wrapper Db2 per IBM Db2 Versione 9.5 o successiva. Quando l'istruzione CREATE NICKNAME specifica un nome - oggetto - remoto che ha colonne con tipi di dati non supportati, viene restituito un errore.
I tipi di dati dell'origine dati ONG VARCHAR e LONG VARGRAPHIC sono associati rispettivamente ai tipi di dati CLOB e DBCLOB. LONG VARCHAR FOR BIT DATA è associato a BLOB.
- La lunghezza massima consentita per i nomi indice è 128 byte. Se si sta creando un nickname per una tabella relazionale che ha un indice il cui nome supera questa lunghezza, l'intero nome non viene catalogato. Piuttosto, viene troncato a 128 byte. Se la stringa formata da questi caratteri non è univoca all'interno dello schema a cui appartiene l'indice, si tenta di renderla univoca sostituendo l'ultimo carattere con 0. Se il risultato non è ancora univoco, l'ultimo carattere viene modificato in 1. Questo processo viene ripetuto con i numeri da 2 a 9 e, se necessario, con i numeri da 0 a 9 per il 127th del nome, il 126th carattere e così via, fino a quando non viene generato un nome univoco. Per illustrare: il nome a 130 byte di un indice su una tabella di origine dati è AREALLY ...RALLYLONGNAME. I nomi AREALLY ...REALLYLONGNA e AREALLY ...REALLYLONGN0 esiste già nello schema a cui appartiene questo indice. Il nuovo nome è superiore a 128 byte; pertanto, viene troncato a AREALLY ...REALLYLONGNA. Poiché questo nome esiste già nello schema, la versione troncata viene modificata in AREALLY ...REALLYLONGN0. Poiché anche questo nome esiste, la versione troncata viene modificata in AREALLY ...REALLYLONGN1. Questo nome non esiste già nello schema, quindi viene accettato come nuovo nome.
- Quando viene creato un nickname per un oggetto origine dati, i nomi delle colonne nickname vengono memorizzati nel catalogo. Quando l'oggetto dell'origine dati è una tabella o una vista, i nomi delle colonne del nickname vengono creati in modo che siano uguali ai nomi della tabella o della colonna della vista. Se un nome supera la lunghezza massima consentita per un nome di colonna del database, il nome viene troncato a questa lunghezza. Se la versione troncata non è univoca tra gli altri nomi di colonna nella tabella o nella vista, viene resa univoca seguendo la procedura descritta nel paragrafo precedente.
- Se l'oggetto origine dati ha indici definiti, le specifiche di indice per ciascun indice vengono create quando viene creato il nickname. Le specifiche dell'indice non sono create nell'origine dati per gli indici che hanno:
- Nomi di colonna duplicati
- Più di 64 colonne
- Più di 1024 byte nella somma della lunghezza delle parti della chiave di indice
- Se la definizione di un oggetto origine dati remota viene modificata (ad esempio, una colonna viene eliminata o un tipo di dati viene modificato), il nickname deve essere eliminato e ricreato; in caso contrario, potrebbero verificarsi errori quando il nickname viene utilizzato in un'istruzione SQL.
- Memorizzazione nella cache e oggetti protetti: quando viene creato un nickname, se l'oggetto dell'origine dati non è protetto, ALLOW CACHING è attivo per il nickname. Se il server federato può rilevare che l'oggetto origine dati è protetto, DISALLOW CACHING è attivo per il nickname. L'opzione DISALLOW CACHING garantisce che ogni volta che viene utilizzato il nickname, i dati per l'ID autorizzazione appropriato vengono restituiti dall'origine dati al momento dell'esecuzione della query. Ciò viene eseguito limitando l'utilizzo del nickname nella definizione di una tabella di query materializzata sul server federato, che potrebbe essere utilizzato per memorizzare nella cache i dati del nickname. L'istruzione ALTER NICKNAME può essere utilizzata per modificare tra ALLOW CACHING e DISALLOW CACHING.
- I tipi BINARY e VARBINARY non sono supportati in un sistema federato.
- Se l'origine dati remota è Hive, Spark o Impalae se l'oggetto dell'origine dati remota contiene una colonna con un tipo di carattere di grandi dimensioni, come STRING o VARCHAR (65535), la colonna remota viene associata alla colonna locale di tipo VARCHAR (32672) e i dati che superano i 32672 byte vengono troncati.
- Alternative di sintassi: la seguente sintassi è supportata per la compatibilità con versioni precedenti di Db2:
- ADD può essere specificato prima di nickname - option - name string - constant.
- ADD può essere specificato prima di nome - opzione - colonna stringa - costante.
Esempi
- Creare un nickname per una vista, DEPARTMENT, che si trova in uno schema denominato HEDGES. Questa vista è memorizzata in un'origine dati Db2 for z/OS denominata OS390A.
CREATE NICKNAME DEPT FOR OS390A.HEDGES.DEPARTMENT - Selezionare tutti i record dalla vista per cui è stato creato un nickname nell'Esempio 1. Il nickname deve fare riferimento alla vista. È possibile fare riferimento alla vista remota utilizzando il nome con cui è nota all'origine dati solo in sessioni pass - through.La seguente istruzione è valida dopo la creazione del nickname UFF:
SELECT * FROM DEPTLa seguente istruzione non è valida:SELECT * FROM OS390A.HEDGES.DEPARTMENT - Creare un nickname per la tabella remota JAPAN che si trova in uno schema denominato salesdata. Poiché il nome schema e il nome tabella sull'origine dati sono memorizzati in minuscolo, specificare il nome schema remoto e il nome tabella con virgolette doppie:
CREATE NICKNAME JPSALES FOR asia."salesdata"."japan" - Creare un nickname per il file strutturato della tabella DRUGDATA1.TXT. Includere le opzioni FILE_PATH, COLUMN DELIMITER, KEY_COLUMN e VALIDATE_DATA_FILE nell'istruzione.
CREATE NICKNAME DRUGDATA1 (Dcode INTEGER, DRUG CHAR(20), MANUFACTURER CHAR(20)) FOR SERVER biochem_lab OPTIONS (FILE_PATH '/usr/pat/DRUGDATA1.TXT', COLUMN_DELIMITER ',', KEY_COLUMN 'DCODE', SORTED 'Y', VALIDATE_DATA_FILE 'Y') - Creare il nickname principale CUSTOMERS su più file XML nel percorso di directory specificato /home/dbuser. Includere le seguenti opzioni:
- Opzioni colonna:
- Opzione della colonna XPATH per l'ID denominato della colonna VARCHAR (5), che indica l'elemento o l'attributo nei file XML da cui vengono estratti i dati della colonna
- Opzione colonna XPATH per la colonna VARCHAR (16) denominata NAME, che indica l'elemento o l'attributo nel file XML da cui vengono estratti i dati della colonna
- Opzione della colonna XPATH per la colonna VARCHAR (30) denominata ADDRESS, che indica l'elemento o l'attributo nel file XML da cui vengono estratti i dati della colonna
- Opzione di colonna PRIMARY_KEY per la colonna VARCHAR (16) denominata CID, che identifica il nickname dei clienti come nickname principale in una gerarchia di nickname
- Opzioni nickname:
- Opzione nickname DIRECTORY_PATH per indicare l'ubicazione dei file XML che forniscono i dati
- Opzione nickname XPATH per indicare l'elemento nei file XML in cui iniziano i dati
- Opzione nickname STREAMING per indicare che i dati di origine XML sono separati ed elaborati elemento per elemento. In questo esempio, l'elemento è un record cliente.
CREATE NICKNAME customers (id VARCHAR(5) OPTIONS(XPATH './@id'), name VARCHAR(16) OPTIONS(XPATH './/name'), address VARCHAR(30) OPTIONS(XPATH './/address/@street'), cid VARCHAR(16) OPTIONS(PRIMARY_KEY 'YES')) FOR SERVER xml_server OPTIONS (DIRECTORY_PATH '/home/dbuser', XPATH '//customer', STREAMING 'YES') - Opzioni colonna:
- Una tabella Hive con il nome STR_TAB contiene una colonna con il nome COL5. COL5 ha il tipo STRING e una lunghezza di colonna di 2 GB. Quando si crea un soprannome per STR_TAB, la lunghezza della colonna COL5 viene ridotta a 32672 byte.
CREATE NICKNAME "STRING_NCK" FOR "SERVER10"."STR_TAB" SQL1812W Remote column COL5 with length 2147483647 was reduced to 32672. SQLSTATE=0169E
