Categorias
iiiiii
ORACLE DATABASE CURSE
Descripcion
TIPOS DE DATOS ORACLE
Scrippt
- varchar2(x): =>varchar2(30)
Se emplea para almacenar cadenas de caracteres. Se introduce entre comillas simples.
Almacena cadenas de caracteres de longitud variable determinada por el argumento "x" (obligatorio). Que sea una cadena de
longitud variable significa que, si definimos un campo como "varchar2(10)" y almacenamos el valor "hola" (4 caracteres),
Oracle solamente ocupa las 4 posiciones (4 bytes y no 10 como en el caso de "char"); por lo tanto, si la longitud es
variable, es conveniente utilizar este tipo de dato y no "char", así ocupamos menos espacio de almacenamiento en disco.
Su rango es de 1 a 4000 caracteres.
ejemplo: 'Hola'
- number(p,s):
Se usa para guardar valores numéricos con decimales, de 1.0 x10-120 a 9.9...(38 posiciones).
Definimos campos de este tipo cuando queremos almacenar valores numéricos con los cuales luego realizaremos operaciones
matemáticas, por ejemplo, cantidades, precios, etc.
Puede contener números enteros o decimales, positivos o negativos. El parámetro "p" indica el número total de dígitos
(contando los decimales) que contendrá el número como máximo (es la precisión). Su rango va de 1 a 38.
El parámetro "s" especifica la escala, es decir, el máximo de dígitos decimales. La escala puede ir de -84 a 127. Por
ejemplo, un campo definido "number(5,2)" puede contener cualquier número entre 0.00 y 999.99 (positivo o negativo).
Para especificar número enteros, podemos omitir el parámetro "s" o colocar el valor 0 como parámetro "s". Se utiliza como
separador el punto (.).
Si definimos un campo de tipo number(4,2) e intentamos guardar el valor 123.45, aparece un mensaje indicando que el valor
es demasiado grande para la columna.
Si ingresamos un valor con más decimales que los definidos, el valor se carga pero con la cantidad de decimales
permitidos, los dígitos sobrantes se omiten.
- float (x):
almacena un número en punto decimal. El parámetro indica la precisión binaria máxima; con un rango de 1 a 126. Si se
omite, por defecto es 126.
TIPS
Para ambos tipos numéricos:
si ingresamos un valor con más decimales que los permitidos, redondea al más cercano; por ejemplo, si definimos "float
(4,2)" e ingresamos el valor "12.686", guardará "12.69", redondeando hacia arriba; si ingresamos el valor "12.682",
guardará "12.67", redondeando hacia abajo.
si intentamos ingresar un valor fuera de rango, no lo acepta.
si ingresamos una cadena, Oracle intenta convertirla a valor numérico, si dicha cadena consta solamente de dígitos, la
conversión se realiza, luego verifica si está dentro del rango, si es así, la ingresa, sino, muestra un mensaje de error y
no ejecuta la sentencia.
Si la cadena contiene caracteres que Oracle no puede convertir a valor numérico, muestra un mensaje de error y la
sentencia no se ejecuta.
Por ejemplo, definimos un campo de tipo "numberl(5,2)", si ingresamos la cadena '12.22', la convierte al valor numérico
12.22 y la ingresa; si intentamos ingresar la cadena '1234.56', la convierte al valor numérico 1234.56, pero como el máximo
valor permitido es 999.99, muestra un mensaje indicando que está fuera de rango. Si intentamos ingresar el valor '12y.25',
Oracle no puede realizar la conversión y muestra un mensaje de error.
TIPS
Si en un campo almacenaremos números telefónicos o un números de documento, usamos "varchar2", no "number" porque si bien
son dígitos, con ellos no realizamos operaciones matemáticas.
Si en un campo guardaremos apellidos, y suponemos que ningún apellido superará los 20 caracteres, definimos el campo
"varchar2(20)".
Si en un campo almacenaremos precios con dos decimales que no superarán los 999.99 pesos definimos un campo de tipo
"number(5,2)", es decir, 5 dígitos en total, con 2 decimales.
Si en un campo almacenaremos valores enteros de no más de 3 dígitos, definimos un campo de tipo "number(3,0)".
- char(x):
Define una cadena de caracteres de longitud fija determinada por el argumento "x".
Si se omite el argumento, por defecto coloca 1. "char" viene de character, que significa caracter en inglés. Su rango
es de 1 a 2000 caracteres.
Que sea una cadena de longitud fija significa que, si definimos un campo como "char(10)" y almacenamos el valor "hola" (4
caracteres), Oracle rellenará las 6 posiciones restantes con espacios, es decir, ocupará las 10 posiciones; por lo tanto,
si la longitud es invariable, es conveniente utilizar el tipo char; caso contrario, el tipo varchar2.
Si almacenamos "hola" en un campo definido "char(10)" Oracle almacenará "hola ".
- nchar(x):
es similar a "char" excepto que permite almacenar caracteres ASCII, EBCDIC y Unicode.
su rango va de 1 a 1000 caracteres porque se emplean 2 bytes por cada caracter.
- nvarchar2(x):
es similar a "varchar2", excepto que permite almacenar caracteres Unicode.
su rango va de 1 a 2000 caracteres porque se emplean 2 bytes por cada caracter.
- varchar(x) y char2(x): disponibles en Oracle8.
- long:
guarda caracteres de longitud variable; puede contener hasta 2000000000 caracteres (2 Gb). No admite argumento para
especificar su longitud. En Oracle8 y siguientes versiones conviene emplear "clob" y "nlob" para almacenar grandes
cantidades de datos alfanuméricos.
TIPS
Si ingresamos un valor numérico (omitiendo las comillas), lo convierte a cadena y lo ingresa como tal.Por ejemplo, si en
un campo definido como varchar2(5) ingresamos el valor 12345, lo toma como si hubiésemos tipeado '12345', igualmente, si
ingresamos el valor 23.56, lo convierte a '23.56'.
Si el valor numérico, al ser convertido a cadena supera la longitud definida, aparece un mensaje de error y la sentencia
no se ejecuta.
Es importante elegir el tipo de dato adecuado según el caso.
Para almacenar cadenas que varían en su longitud, es decir, no todos los registros tendrán la misma longitud en un campo
determinado, se emplea "varchar2" en lugar de "char". Por ejemplo, en campos que guardamos nombres y apellidos, no todos
los nombres y apellidos tienen la misma longitud.
Para almacenar cadenas que no varían en su longitud, es decir, todos los registros tendrán la misma longitud en un campo
determinado, se emplea "char". Por ejemplo, definimos un campo "codigo" que constará de 5 caracteres, todos los registros
tendrán un código de 5 caracteres, ni más ni menos.
Para almacenar valores superiores a 4000 caracteres se debe emplear "long".
Plsql
- varchar2(x): =>varchar2(30)
Se emplea para almacenar cadenas de caracteres. Se introduce entre comillas simples.
Almacena cadenas de caracteres de longitud variable determinada por el argumento "x" (obligatorio). Que sea una cadena de
longitud variable significa que, si definimos un campo como "varchar2(10)" y almacenamos el valor "hola" (4 caracteres),
Oracle solamente ocupa las 4 posiciones (4 bytes y no 10 como en el caso de "char"); por lo tanto, si la longitud es
variable, es conveniente utilizar este tipo de dato y no "char", así ocupamos menos espacio de almacenamiento en disco.
Su rango es de 1 a 4000 caracteres.
ejemplo: 'Hola'
- number(p,s):
Se usa para guardar valores numéricos con decimales, de 1.0 x10-120 a 9.9...(38 posiciones).
Definimos campos de este tipo cuando queremos almacenar valores numéricos con los cuales luego realizaremos operaciones
matemáticas, por ejemplo, cantidades, precios, etc.
Puede contener números enteros o decimales, positivos o negativos. El parámetro "p" indica el número total de dígitos
(contando los decimales) que contendrá el número como máximo (es la precisión). Su rango va de 1 a 38.
El parámetro "s" especifica la escala, es decir, el máximo de dígitos decimales. La escala puede ir de -84 a 127. Por
ejemplo, un campo definido "number(5,2)" puede contener cualquier número entre 0.00 y 999.99 (positivo o negativo).
Para especificar número enteros, podemos omitir el parámetro "s" o colocar el valor 0 como parámetro "s". Se utiliza como
separador el punto (.).
Si definimos un campo de tipo number(4,2) e intentamos guardar el valor 123.45, aparece un mensaje indicando que el valor
es demasiado grande para la columna.
Si ingresamos un valor con más decimales que los definidos, el valor se carga pero con la cantidad de decimales
permitidos, los dígitos sobrantes se omiten.
- float (x):
almacena un número en punto decimal. El parámetro indica la precisión binaria máxima; con un rango de 1 a 126. Si se
omite, por defecto es 126.
TIPS
Para ambos tipos numéricos:
si ingresamos un valor con más decimales que los permitidos, redondea al más cercano; por ejemplo, si definimos "float
(4,2)" e ingresamos el valor "12.686", guardará "12.69", redondeando hacia arriba; si ingresamos el valor "12.682",
guardará "12.67", redondeando hacia abajo.
si intentamos ingresar un valor fuera de rango, no lo acepta.
si ingresamos una cadena, Oracle intenta convertirla a valor numérico, si dicha cadena consta solamente de dígitos, la
conversión se realiza, luego verifica si está dentro del rango, si es así, la ingresa, sino, muestra un mensaje de error y
no ejecuta la sentencia.
Si la cadena contiene caracteres que Oracle no puede convertir a valor numérico, muestra un mensaje de error y la
sentencia no se ejecuta.
Por ejemplo, definimos un campo de tipo "numberl(5,2)", si ingresamos la cadena '12.22', la convierte al valor numérico
12.22 y la ingresa; si intentamos ingresar la cadena '1234.56', la convierte al valor numérico 1234.56, pero como el máximo
valor permitido es 999.99, muestra un mensaje indicando que está fuera de rango. Si intentamos ingresar el valor '12y.25',
Oracle no puede realizar la conversión y muestra un mensaje de error.
TIPS
Si en un campo almacenaremos números telefónicos o un números de documento, usamos "varchar2", no "number" porque si bien
son dígitos, con ellos no realizamos operaciones matemáticas.
Si en un campo guardaremos apellidos, y suponemos que ningún apellido superará los 20 caracteres, definimos el campo
"varchar2(20)".
Si en un campo almacenaremos precios con dos decimales que no superarán los 999.99 pesos definimos un campo de tipo
"number(5,2)", es decir, 5 dígitos en total, con 2 decimales.
Si en un campo almacenaremos valores enteros de no más de 3 dígitos, definimos un campo de tipo "number(3,0)".
- char(x):
Define una cadena de caracteres de longitud fija determinada por el argumento "x".
Si se omite el argumento, por defecto coloca 1. "char" viene de character, que significa caracter en inglés. Su rango
es de 1 a 2000 caracteres.
Que sea una cadena de longitud fija significa que, si definimos un campo como "char(10)" y almacenamos el valor "hola" (4
caracteres), Oracle rellenará las 6 posiciones restantes con espacios, es decir, ocupará las 10 posiciones; por lo tanto,
si la longitud es invariable, es conveniente utilizar el tipo char; caso contrario, el tipo varchar2.
Si almacenamos "hola" en un campo definido "char(10)" Oracle almacenará "hola ".
- nchar(x):
es similar a "char" excepto que permite almacenar caracteres ASCII, EBCDIC y Unicode.
su rango va de 1 a 1000 caracteres porque se emplean 2 bytes por cada caracter.
- nvarchar2(x):
es similar a "varchar2", excepto que permite almacenar caracteres Unicode.
su rango va de 1 a 2000 caracteres porque se emplean 2 bytes por cada caracter.
- varchar(x) y char2(x): disponibles en Oracle8.
- long:
guarda caracteres de longitud variable; puede contener hasta 2000000000 caracteres (2 Gb). No admite argumento para
especificar su longitud. En Oracle8 y siguientes versiones conviene emplear "clob" y "nlob" para almacenar grandes
cantidades de datos alfanuméricos.
TIPS
Si ingresamos un valor numérico (omitiendo las comillas), lo convierte a cadena y lo ingresa como tal.Por ejemplo, si en
un campo definido como varchar2(5) ingresamos el valor 12345, lo toma como si hubiésemos tipeado '12345', igualmente, si
ingresamos el valor 23.56, lo convierte a '23.56'.
Si el valor numérico, al ser convertido a cadena supera la longitud definida, aparece un mensaje de error y la sentencia
no se ejecuta.
Es importante elegir el tipo de dato adecuado según el caso.
Para almacenar cadenas que varían en su longitud, es decir, no todos los registros tendrán la misma longitud en un campo
determinado, se emplea "varchar2" en lugar de "char". Por ejemplo, en campos que guardamos nombres y apellidos, no todos
los nombres y apellidos tienen la misma longitud.
Para almacenar cadenas que no varían en su longitud, es decir, todos los registros tendrán la misma longitud en un campo
determinado, se emplea "char". Por ejemplo, definimos un campo "codigo" que constará de 5 caracteres, todos los registros
tendrán un código de 5 caracteres, ni más ni menos.
Para almacenar valores superiores a 4000 caracteres se debe emplear "long".