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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top