Converti char per i dati bit in numero intero in DB2
-
05-07-2019 - |
Domanda
Sto scrivendo una funzione definita dall'utente DB2 per la quale ho bisogno di una matrice di numeri interi non negativi, che rappresento come varchar per i dati bit . Ho intenzione di usare due byte per ogni numero intero (dandomi un valore massimo di 2 ^ 16-1, il che è accettabile).
Posso convertire un numero intero in un carattere per i dati bit utilizzando la funzione chr , ma come posso ripristinarlo in un numero intero?
Qualsiasi consiglio aggiuntivo sulla manipolazione dei bit nelle procedure DB2 sarebbe utile, in quanto non riesco a trovare molta documentazione su di esso. Sto usando la v9.1 su Linux.
Soluzione
Non sono sicuro che CHR sia effettivamente quello che vuoi. Secondo la documentazione , la funzione CHR:
Restituisce il carattere che ha il valore del codice ASCII specificato dall'argomento. L'argomento può essere INTEGER o SMALLINT. Il valore dell'argomento dovrebbe essere compreso tra 0 e 255; in caso contrario, il valore restituito è null.
Il contrario della funzione CHR è funzione ASCII.
L'elenco completo delle procedure scalari DB2 è qui .
Non sono sicuro che scrivere un UDF in questo modo sia il migliore per quello che stai cercando di fare. Si consiglia di scrivere una procedura memorizzata che non è in SQL. C'è un elenco di lingue supportate, come Java, C, C ++ ecc.