DATAPARTITIONNUM funzione scalare
La funzione DATAPARTITIONNUM restituisce il numero di sequenza (SYSDATAPARTITIONS.SEQNO) della partizione di dati in cui risiede la riga.
Lo schema è SYSIBM.
- Nome colonna
- Il nome qualificato o squalificato di qualsiasi colonna della tabella. Poiché le informazioni di livello di riga vengono restituite, il risultato è lo stesso indipendentemente da quale colonna viene specificata. La colonna può avere qualsiasi tipo di dato.
Se la colonna è una colonna di una vista, l'espressione per la colonna nella vista deve far riferimento ad una colonna della tabella base sottostante e la vista deve essere deletata. Un'espressione di tabella nidificata o comune segue le stesse regole di una vista.
Risultato
Il tipo di dati del risultato è INTERO e non è mai nullo.
Le partizioni dei dati sono ordinate per intervallo e i numeri di sequenza iniziano a 0. Ad esempio, la funzione DATAPARTITIONNUM restituisce 0 per una riga che risiede nella partizione dati con l'intervallo più basso.
Note
- Questa funzione non può essere utilizzata come funzione di origine quando si crea una funzione definita dall'utente. Poiché la funzione accetta qualsiasi tipo di dato come argomento, non è necessario creare firme aggiuntive per supportare tipi distinti definiti dall'utente.
- La funzione DATAPARTITIONNUM non può essere utilizzata all'interno dei vincoli di controllo o nella definizione delle colonne generate (SQLSTATE 42881). La funzione DATAPARTITIONNUM non può essere utilizzata in una definizione MQT (materialized query table) (SQLSTATE 428EC).
- La funzione DATAPARTITIONNUM non può essere utilizzata come parte di una chiave di espressione in un'istruzione CREATE INDEX.
Esempi
- Esempio 1: richiamare il numero di sequenza della partizione di dati in cui la riga per EMPLOYEE.EMPNO risiede.
SELECT DATAPARTITIONNUM (EMPNO) FROM EMPLOYEE - Esempio 2: Per convertire un numero di sequenza restituito da DATAPARTITIONNUM (ad esempio 0) a un nome di partizione dati che può essere utilizzato in altre istruzioni SQL (come ALTER TABLE ...DETACH PARTITION), è possibile interrogare il SYSCAT SYSCAT.DATAPARTITIONS . Includere il SEQNO ottenuto da DATAPARTITIONNUM nella clausola WHERE, come mostrato nel seguente esempio.
risultati nel valore 'PART0'.SELECT DATAPARTITIONNAME FROM SYSCAT.DATAPARTITIONS WHERE TABNAME = 'EMPLOYEE' AND SEQNO = 0
