InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial PL/SQL
Introducción a PLSQL
Programación con PL/SQL
Fundamentos de PL/SQL
Tipos de datos en PL/SQL
Operadores en PL/SQL
Estructuras de control en PL/SQL
Bloques PL/SQL
Cursores en PL/SQL
Cursores Implicitos en PL/SQL
Cursores Explicitos en PL/SQL
Cursores de actualización en PL/SQL
Excepciones en PL/SQL
Excepciones personalizadas en PL/SQL
Propagacion de excepciones en PL/SQL
Subprogramas en PL/SQL
Procedimientos almacenados en PL/SQL
Funciones en PL/SQL
Triggers en PL/SQL
Subprogramas en bloques anónimos
Paquetes en PL/SQL
Registros PL/SQL
Tablas PL/SQL
Tipo VARRAY
BULK COLLECT
Transacciones con PL/SQL
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Secuencias
PL/SQL y Java
También puedes ver ...
Excepciones personalizadas en PL/SQL
Como conectar a ORACLE con Java
Recuperar datos BLOB de ORACLE
Trabajar con datos de tipo BLOB en ORACLE
PL/SQL y Java
Secuencias
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Transacciones con PL/SQL

Afiliados
La Web del programador
MundoProgramacion


 

Tipos de datos en PL/SQL

   Cada constante y variable tien un tipo de dato en el cual se especifica el formato de almacenamiento, restricciones y rango de valores validos.

    PL/SQL proporciona una variedad predefinida de tipos de datos . Casi todos los tipos de datos manejados por PL/SQL son similares a los soportados por SQL. A continuación se muestran los TIPOS de DATOS más comunes:

  • NUMBER (Numérico): Almacena números enteros o de punto flotante, virtualmente de cualquier longitud, aunque puede ser especificada la precisión (Número de digitos) y la escala que es la que determina el número de decimales.

    -- NUMBER [(precision, escala)]
    saldo NUMBER(16,2); 
    /* Indica que puede almacenar un valor numérico de 16
    posiciones, 2 de ellas decimales. Es decir, 14 enteros
    y dos decimales */

  • CHAR (Caracter): Almacena datos de tipo caracter con una longitud maxima de 32767 y cuyo valor de longitud por default es 1


    -- CHAR [(longitud_maxima)]
    nombre CHAR(20);
    /* Indica que puede almacenar valores alfanuméricos de 20
    posiciones */

  • VARCHAR2 (Caracter de longitud variable): Almacena datos de tipo caracter empleando sólo la cantidad necesaria aún cuando la longitud máxima sea mayor.



    -- VARCHAR2 (longitud_maxima)

    nombre VARCHAR2(20);
    /* Indica que puede almacenar valores alfanuméricos de hasta 20
    posicones */
    /* Cuando la longitud de los datos sea menor de 20 no se
    rellena con blancos */

  • BOOLEAN (lógico): Se emplea para almacenar valores TRUE o FALSE.


    hay_error BOOLEAN;

  • DATE (Fecha): Almacena datos de tipo fecha. Las fechas se almacenan internamente como datos numéricos, por lo que es posible realizar operaciones aritmeticas con ellas.
  • Atributos de tipo. Un atributo de tipo PL/SQL es un modificador que puede ser usado para obtener información de un objeto de la base de datos. El atributo %TYPE permite conocer el tipo de una variable, constante o campo de la base de datos. El atributo %ROWTYPE permite obtener los tipos de todos los campos de una tabla de la base de datos, de una vista o de un cursor.
  • PL/SQL también permite la creación de tipos personalizados (registros) y colecciones(tablas de PL/SQL), que veremos en sus apartados correspondientes.

   Existen por supuesto más tipos de datos, la siguiente tabla los muestra: 

Tipo de dato / Sintáxis Oracle 8i Oracle 9i Descripción
dec(p, e) La precisión máxima es de 38 dígitos. La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.

Por ejemplo: dec(3,1) es un número que tiene 2 dígitos antes del decimal y un dígito después del decimal.

decimal(p, e) La precisión máxima es de 38 dígitos. La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.

Por ejemplo: decimal(3,1) es un número que tiene 2 dígitos antes del decimal y un dígito después del decimal.

double precision
float
int
integer
numeric(p, e) La precisión máxima es de 38 dígitos. La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.

Por ejemplo: numeric(7,2) es un número que tiene 5 dígitos antes del decimal y 2 dígitos después del decimal.

number(p, e) La precisión máxima es de 38 dígitos. La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.

Por ejemplo: number(7,2) es un número que tiene 5 dígitos antes del decimal y 2 dígitos después del decimal.

real
smallint
char (tamaño) Hasta 32767 bytes en PLSQL.

Hasta 2000 bytes en Oracle 8i.

Hasta 32767 bytes en PLSQL.

Hasta 2000 bytes en Oracle 9i.

Donde tamaño es el número de caracteres a almacenar. Son cadenas de ancho fijo. Se rellena con espacios.
varchar2 (tamaño) Hasta 32767 bytes en PLSQL.

Hasta 4000 bytes en Oracle 8i.

Hasta 32767 bytes en PLSQL.

Hasta 4000 bytes en Oracle 9i.

Donde tamaño es el número de caracteres a almacenar. Son cadenas de ancho variable.
long Hasta 2 gigabytes. Hasta 2 gigabytes. Son cadenas de ancho variable.
raw Hasta 32767 bytes en PLSQL.

Hasta 2000 bytes en Oracle 8i.

Hasta 32767 bytes en PLSQL.

Hasta 2000 bytes en Oracle 9i.

Son cadenas binarias de ancho variable.
long raw Hasta 2 gigabytes. Hasta 2 gigabytes. Son cadenas binarias de ancho variable.
date Una fecha entre el 1 de Enero de 4712 A.C. y el 31 de Diciembre de 9999 D.C. Una fecha entre el 1 de Enero de 4712 A.C. y el 31 de Diciembre de 9999 D.C.
timestamp (fractional seconds precision) No soportado por Oracle 8i. fractional seconds precision debe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos.

Por ejemplo: timestamp(6)

timestamp (fractional seconds precision) with time zone No soportado por Oracle 8i. fractional seconds precision debe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos; con un valor de desplazamiento de zona horaria.

Por ejemplo: timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone No soportado por Oracle 8i. fractional seconds precision debe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos; con una zona horaria expresada como la zona horaria actual.

Por ejemplo: timestamp(4) with local time zone

interval year (year precision) to month No soportado por Oracle 8i. year precision debe ser un número entre 0 y 9. (El valor por defecto es 2) Período de tiempo almacenado en años y meses.

Por ejemplo: interval year(4) to month

interval day (day precision) to second (fractional seconds precision) No soportado por Oracle 8i. day precision debe ser un número entre 0 y 9. (El valor por defecto es 2)

fractional seconds precision debe ser un número entre 0 y 9. (El valor por defecto es 6)

Incluye año, mes día, hora, minutos y segundos.

Por ejemplo: interval day(2) to second(6)

rowid El formato del campo rowid es:

BBBBBBB.RRRR.FFFFF donde BBBBBBB es el bloque en el fichero de la base de datos; RRRR es la fila del bloque; FFFFF es el fichero de la base de datos.

El formato del campo rowid es:

BBBBBBB.RRRR.FFFFF donde BBBBBBB es el bloque en el fichero de la base de datos; RRRR es la fila del bloque; FFFFF es el fichero de la base de datos.

Datos binarios de ancho fijo. Cada registro de la base de datos tiene una dirección física o rowid.
urowid [tamaño] Hasta 2000 bytes. Hasta 2000 bytes. Rowid universal. Donde tamaño es opcional.
boolean Válido en PLSQL, este tipo de datos no existe en Oracle 8i. Válido en PLSQL, este tipo de datos no existe en Oracle 9i.
nchar (tamaño) Hasta 32767 bytes en PLSQL. Hasta 2000 bytes en Oracle 8i. Hasta 32767 bytes en PLSQL. Hasta 2000 bytes en Oracle 9i. Donde tamaño es el número de caracteres a almacenar. Cadena NLS de ancho fijo.
nvarchar2 (tamaño) Hasta 32767 bytes en PLSQL. Hasta 4000 bytes en Oracle 8i. Hasta 32767 bytes en PLSQL. Hasta 4000 bytes en Oracle 9i. Donde tamaño es el número de caracteres a almacenar. Cadena NLS de ancho variable.
bfile Hasta 4 gigabytes. Hasta 4 gigabytes. Localizadores de archivo apuntan a un objeto binario de sólo lectura fuera de la base de datos.
blob Hasta 4 gigabytes. Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto binario dentro de la base de datos.
clob Hasta 4 gigabytes. Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos.
nclob Hasta 4 gigabytes. Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos.


Inicio | Tutorial PL/SQL Fundamentos de PL/SQLTutorial PL/SQLOperadores en PL/SQL Versión para imprimir Foros de consulta

 
Agradecimiento por Raúl Gracia
Respuesta recibida el [08/06/2007 12:30:16]
Muchísimas gracias por hacer más fácil mi trabajo diario.

 
Otros lo hicieron por mí antes... por Devjoker
Respuesta recibida el [08/06/2007 01:07:14]
Otros lo hicieron por mí antes ... Gracias a tí.

 
Eres un caso tío por Byron
Respuesta recibida el [12/06/2007 04:54:03]
Hola tío, eres un tipo sin egoísmo al compartir su conocimiento, además esto es claro y conciso.

GRACIAS!!!

 
Viva el conocimiento libre por Aitorman
Respuesta recibida el [19/06/2007 12:31:45]
Soy estudiante de 3º de Ingeniería Informática y creeme, que estos tutoriales están muy bien para todo aquel que quiera adquirir conocimientos de programación de una forma clara y fácil. Mi más sincera enhorabuena, sigue así!

Ah, y también destacar que con este proyecto, avivas el conocimiento libre, lo cual es de agradecer.

 
Excelente por Sónico
Respuesta recibida el [24/06/2007 05:16:29]
Este tipo de información 
ayuda muchisímo a Uno.

Excelente JOB

 
Muy bueno, gracias por Guille
Respuesta recibida el [17/09/2007 02:57:08]
Gracias por compartir vuestros conocimientos, saludos!

 
exelente por damian
Respuesta recibida el [04/10/2007 05:38:50]
Soy estudiante de Lic. en computación y sistemas en 5o. semestre, buscando tutoriales para este lenguaje me topé con el tuyo, exelente trabajo, se te agradece por compartir el conocimiento y evitar el egoismo. Siempre hay que ayudarnos para ser mejores.. saludos!!

 
estupendo tutorial por javi
Respuesta recibida el [15/10/2007 09:05:00]
Yo soy programador Java y hace poco he tenido que vermelas con el pl/sql. 
Tu manual me ha dejado muchas cosas claras. Va al grano y no se pierde en tecnicismos innecesarios.
Un saludo y gracias!!!

 
sigue adelante por willy
Respuesta recibida el [19/10/2007 11:40:02]
muy bueno en compartir esos concimentos tuyos me esta ayudando en mi carrera q llevo de ingenria de sistemas aca en lima - peru 
si es posible agrega otras versiones antiguas de oracle en tipo de datos tipo una historia
gracias

 
Gracias por William
Respuesta recibida el [21/11/2007 08:02:54]
Soy estudiante de ingenieria de sistemas de 4to semestre y en realidad estos tutoriales han sido de una gran utilidad, muy bien hechos, claros....
No me queda mas que agradecerte por compartir esta informacion.

 
Grande maestro por hdemente
Respuesta recibida el [22/01/2008 03:15:51]
Los conocimientos que dejas en este sitio me sacan de muchos apuros y de verdad se nota que eres secopara el tema, poruqe de lo contrario no compartirias tus conocimientos.

vale tio.

 
GRACIAS!!! por Daniel
Respuesta recibida el [12/06/2008 01:54:58]
la verdad te agradezco que hayas colgado este conocimiento en la red, me es de mucha ayuda.

 
ayuda por naye
Respuesta recibida el [22/06/2008 05:50:11]
quisera saber que necesito y cmo instalar oracle para practicar pl/sql en mi casa??
porfavor una brebe respuesta
gracias

 
Sysdate por Melisa
Respuesta recibida el [16/07/2008 03:47:50]
Cuando tengo:
Select sysdate from dual;

que fecha me trae? la de mi equipo, la del servidor donde esta instalado oracle?
De donde la saca?

Gracias.

 
Sysdate por Mifox9
Respuesta recibida el [03/09/2008 07:11:54]
Sydate obtiene la fecha del servidor 

 
Gracias devjoker por Mifox9
Respuesta recibida el [03/09/2008 07:14:29]
Excelente sitio, informacion exacta, directa, lo mejor que he visto en cuanto a este tema.

Saludos.

 
gracias por anonimo
Respuesta recibida el [02/11/2008 10:49:21]
hola gracias  por compartir esta informacion, en verdad me ayudo mucho en la universidad.. gracias de todo corazon


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial PL/SQL Fundamentos de PL/SQLTutorial PL/SQLOperadores en PL/SQL Versión para imprimir

Tipos de datos en PL/SQL
Autor: Pedro Herrarte Sánchez
Visitas: 82749 Fecha de publicación: 31/03/2006
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 38 | Comentarios: 0 | Archivo: Articulos
Visitas: 108 | Comentarios: 0 | Archivo: Articulos
Visitas: 155 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 33 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 285 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Basic .NET|C#
Visitas: 840 | Comentarios: 2 | Archivo: Articulos
Categorias: C#|ASP.NET|HTML DHTML|XML|JavaScript|ASP.NET|ASP|PHP|Visual Studio
Visitas: 712 | Comentarios: 1 | Archivo: Articulos
Categorias: Administración|Tutorial SQL
Visitas: 449 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 1053 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 250 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS

Útimos temas recibidos en los foros ...
FORMULARIO ACCESS por jcifuentes ... [Access] 11 29/05/2007
Ysmael por Ysmael ... [SQL] 0 08/01/2009
Reflection por Maurito22 ... [C#] 2 06/01/2009
Programador por Robert ... [ORACLE] 0 07/01/2009
como insertar registros en un formulario de visual basic.net desde la base de datos sql server por orlan ... [SQL Server] 8 09/06/2008
quierocodigo de autogenerado del seguro por edwin garcia ramirez ... [Visual Basic .NET] 0 07/01/2009
Video gratis sobre AJAX con ASP.NET por alexxe ... [ASP.NET] 1 06/01/2009
calcular saldo acumulativo por cben ... [SQL] 5 30/12/2008
comparar 2 campos de 2 tablas usando el like por nani ... [SQL Server] 1 06/01/2009
Apagar ordenador remoto en C# por victoryiyo ... [C#] 1 07/01/2009
numero de AUTOGENERADO IPSS por carlos ... [Visual Basic .NET] 5 30/10/2008
Como mandar mensaje a Celular por Pako ... [C#] 63 13/03/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
27/10/2006 Estructuras    forma parte de...Tutorial C#
15/07/2007 Consultas agregadas    forma parte de...Tutorial de Transact SQL
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL
14/07/2006 Tablas PL/SQL    forma parte de...Tutorial PL/SQL
13/10/2006 Indizadores    forma parte de...Tutorial C#
13/10/2006 Propiedades    forma parte de...Tutorial C#
23/05/2006 Cursores en PL/SQL    forma parte de...Tutorial PL/SQL
19/10/2005 Una clase sencilla para encriptar cadenas
22/10/2005 Consultas combinadas. JOINS    forma parte de...Tutorial SQL
22/10/2005 Vistas    forma parte de...Tutorial SQL

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]