Tipos De Datos Binarios
Enviado por normyeliza • 23 de Junio de 2014 • 872 Palabras (4 Páginas) • 240 Visitas
Tipos de datos binarios
El tipo de dato bytea permite el almacenamiento de cadenas binarias.
Tabla 8-6. Tipos de datos binarios
Nombre
Tamaño de almacenamiento
Descripción
bytea
de 1 a 4 bytes adicionales para la actual cadena binaria
cadena binaria de tamaño variable
Una cadena binaria es una secuencia de octetos (o bytes). Las cadenas binarias se distinguen de las cadenas de caracteres en dos formas: Primero, las cadenas binarias específicamente permiten almacenar octetos de valor cero y algunos "no imprimibles" (usualmente, los octetos fuera del rango de 32 a 126). Las cadenas de caracteres deshabilitan los octetos en cero, y también cualquier octeto y secuencia de valores de octetos que son no válidos de acuerdo con el conjunto de codificación elegido en la base de datos. Segundo, las operaciones en las cadenas binarias procesan los bytes actuales, donde el procesamiento de las cadenas de caracter dependen de la configuración de localización. En resumen, las cadenas binarias son apropiadas para almacenar datos que el programador considere "raw bytes", y para almacenar texto se utilizan las cadenas de caracteres.
Cuando se insertan datos bytea, los octetos de determinados valores deben ser escapados (pero todos los valores de octetos pueden ser escapados) cuando se utilizan como parte literal de una sentencia SQL. En general, para escapatr un octeto, conviértala en su valor octal de tres dígitos precediéndola de 2 barras invertidas ('\'). Aquí se muestran los caracteres que deben ser escapados y da las secuencias alternativas cuando deban ser aplicadas Table 8-7.
Table 8-7. bytea Octetos literales escapados
Decimal Octet Value
Description
Escaped Input Representation
Example
Output Representation
0
zero octet
E'\\000'
SELECT E'\\000'::bytea;
\000
39
single quote
'''' or E'\\047'
SELECT E'\''::bytea;
'
92
backslash
E'\\\\' or E'\\134'
SELECT E'\\\\'::bytea;
\\
0 to 31 and 127 to 255
"non-printable" octets
E'\\xxx' (octal value)
SELECT E'\\001'::bytea;
\001
El requerimiento para escapar las variaciones de octetos no imprimibles dependen de la configuración de localización. En algunas instanticas puede dejar las sin escapar. Note que el resultado en cada uno de los ejemplos en Table 8-7 es exactamente un octeto de tamaño, es más común que algunas veces sea más de un caracter.
La razón de el requerimiento de utilizar barras de escape , como se muestra en Table 8-7, es que la cadena entrante pasa por dos fases de parseo en un servidor Postgresql. La primer barra para cada par es interpretado como un escape para el parseador de cadenas literales (asumiendo que la sintaxis de escape de cadenas está siendo utilizado) y una vez pasado, deja el segundo escape en el par (Utilizar $$ -dollar quoted- como dobles cuotas evita este nivel de escape). El escape remanente es reconocido por la función de entrada del tipo bytea como el comienzo de tres dígitos octales o que está escapando otro caracter de escape. Por ejemplo, una cadena literal pasada al sevidor como E'\\001' se convierte en\001 después del
...