2010-05-17 63 views
7

Traté de mirar aquí:¿Cuántos bytes usa Oracle al almacenar un solo carácter?

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i3253

y entiendo que tengo que proporcionar longitud de la cadena para la columna, que no soy capaz de averiguar cuántos bytes utiliza Oracle para almacenar un carácter. Mi límite es de 500 caracteres, así que si es de 1 byte/carácter, puedo crear la columna con 500, si es de 2 bytes/caracteres, 1000, etc.

¿Alguien tiene un enlace a la documentación o lo sabe con certeza?

En caso de que importe, se está llamando al SQL desde PHP, por lo que estas son cadenas de PHP que estoy insertando en la base de datos. Gracias.

Respuesta

16

el número de bytes necesarios para almacenar un carácter dependerá del conjunto de caracteres. Si desea almacenar 500 caracteres y no conoce el conjunto de caracteres de la base de datos de destino, debe crear la columna (o variable) como VARCHAR2 (500 CHAR) o CHAR (500 CHAR).

+0

Ok, gracias, investigaremos más para encontrar lo que sea apropiado. –

+3

Esta es la respuesta que debe marcarse como aceptada. Además, si quiere ver cuántos bytes le tomará almacenar una cadena en particular, use la función de volcado. SELECCIONAR volcado ('mi tipo de cadena larga') FROM DUAL; –

+1

@Scott: también puede usar la función 'longb' –

-1

Un solo CHAR tomará 1 byte.

probar aquí:

http://ss64.com/ora/syntax-datatypes.html

+0

Lo hice - Supongo que el mínimo es 1 porque es del tamaño de un solo carácter. OK genial gracias. –

+8

Como se señaló en las otras respuestas, un carácter CHAR puede tener múltiples bytes. –

Cuestiones relacionadas