Parity
From Oracle FAQ
⧼orafaq-jumptonavigation⧽⧼orafaq-jumptosearch⧽
Parity is an error detection scheme that uses an extra checking bit, called the parity bit, to allow the receiver to verify that the data is error free.
Parity calculation
Here is a sample PL/SQL function that simulates parity calculation:
CREATE OR REPLACE FUNCTION parity(b1 CHAR, b2 CHAR, b3 CHAR, b4 CHAR, b5 CHAR, b6 CHAR, b7 CHAR, b8 CHAR) RETURN CHAR IS BEGIN RETURN utl_raw.bit_xor(utl_raw.bit_xor(utl_raw.bit_xor(utl_raw.bit_xor( utl_raw.bit_xor(utl_raw.bit_xor(utl_raw.bit_xor( b1, b2), b3), b4), b5), b6), b7), b8); END; /
Example
Calculating parity for 8 byte values:
SQL> SELECT parity('11111111', '10101010', '01010101', '00000000', 2 '11001100', '00110011', '00011101', '11100010') AS Parity 3 FROM dual; PARITY ---------------------------------------------------------------------------- 00000000
So, if any single input byte is lost, it can be recalculated with the parity byte. For example, if we lose the second byte:
SQL> SELECT parity('11111111', '00000000', '01010101', '00000000', 2 '11001100', '00110011', '00011101', '11100010') AS Parity 3 FROM dual; PARITY ---------------------------------------------------------------------------- 10101010
And, we have it again!
Also see
Glossary of Terms | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | # |