Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas

sábado, 8 de octubre de 2016

Usando Secuencias en Oracle

Vamos a trabajar con Secuencias (Sequence) en Oracle y en los siguientes enlaces podrás obtener información al respecto, les sugiero leerlos:

https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6015.htm
https://www.techonthenet.com/oracle/sequences.php

Una secuencia (sequence) se emplea para generar valores enteros secuenciales únicos y asignárselos a campos numéricos; se utilizan generalmente para las claves primarias de las tablas garantizando que sus valores no se repitan.

Esta es la estructura, que se debe utilizar para crear una secuencia en Oracle:


INCREMENT BY = especifica el incremento, es decir, la diferencia entre los números de la secuencia; debe ser un valor numérico entero positivo o negativo diferente de 0. Si no se indica, por defecto es 1.


STAR WITH = Indica el valor desde el cual comenzará la generación de números secuenciales

MINVALUE = Establece el valor mínimo de la secuencia.

MAXVALUE define el valor máximo para la secuencia. Si se omite, por defecto es 99999999999999999999999999.

CYCLE | NOCYCLE = indica que, cuando la secuencia llegue a máximo valor (valor de "maxvalue") se reinicie, comenzando con el mínimo valor ("minvalue") nuevamente, es decir, la secuencia vuelve a utilizar los números. Si se omite, por defecto la secuencia se crea "nocycle".


En mi caso trabajo las secuencias para generar los códigos de los campos PK de mis tablas y para que las secuencias se generen automáticamente, creo un Trigger, con la siguiente estructura:












Recuerden siempre que los campos PK y FK deben ser de tipo entero, sea cual sea el tipo de motor de Base de Datos, es una buena practica.

sábado, 3 de septiembre de 2016

Trabajando con SqlDbx

Recomiendo la herramienta SqlDbx, la cual tiene dos versiones:

1. SqlDbx Professional

2. SqlDbx Personal Edition (Versión Free)

Trabajo con la Versión Free, para conectarme a Oracle y a PostgreSQL, pero tambien soporta otros motores. Pueden descargarla desde la misma web de la herramienta:

http://www.sqldbx.com/personal_edition.htm

martes, 16 de agosto de 2016

Equivalencia de Tabla DUAL de Oracle en PostgreSQL

En Oracle existe la Tabla DUAL, que es una tabla, creada durante la instalación, con una sola columna llamada DUMMY de VARCHAR2(1)  y una sola fila de contenido 'X'. El propietario es SYS y puede ser accedida por cualquier usuario.


Se usa generalmente para ejecutar funciones como SYSDATE.

La Tabla Dual no existe en PostgreSQL, pero hay dos soluciones:

1. Crear la Tabla Dual:

create table public.dual
(
  dummy VARCHAR(1)
);

2. Esta es la que uso: solo ejecutando SELECT con el valor que se requiere, ejemplo:

Necesito tener en un combo todas las familias de un producto, para un filtro en una ventana, al seleccionar una familia debe filtrar los productos que pertenecen a esa familia. La tabla tiene la siguiente estructura:


En mi combo necesito también el dato 'TODAS', para que así el filtro devuelva los productos que pertenecen a las 5 familias.

En Oracle usando:


En PostgreSQL:


Entonces hacemos el siguiente script, que luego lo copiamos en el SQL de un DataWindow:


Espero sea ayuda para ustedes.

lunes, 19 de octubre de 2015

Usar Stored Procedures en Packages de Oracle en DataWindow

Para poder usar cualquier Stored Procedure que se encuentre en un Package de Oracle en un DataWindow, seguimos los siguientes pasos:

1. Buscamos la conexión de la Base de Datos Oracle que tenemos, clic derecho Properties:



2. Activamos la casilla List Package Subprograms de la pestaña System:

martes, 21 de julio de 2015

Obtener Fecha y Hora de Servidor Oracle

Para obtener la fecha del servidor Oracle creamos una función (Function Object):

$PBExportHeader$f_fecha_servidor.srf
global type f_fecha_servidor from function_object
end type

forward prototypes
global function datetime f_fecha_servidor ()
end prototypes

global function datetime f_fecha_servidor ();

// -------------------------------------------------------------------------------------
// Funcion : f_fecha_servidor
// Proposito: Devuelve la fecha y hora del servidor Oracle
// Creador : Jorge A. Barzola Rosadio
// Fecha : 12/03/2013

// -------------------------------------------------------------------------------------

DateTime ldt_fecha

 SELECT SYSDATE
  INTO :ldt_fecha
  FROM dual;

Return ( ldt_fecha )

end function

Este ejemplo es para asignar la fecha y hora del servidor Oracle a un campo del DW:

dw_1.Object.fecha[ll_Fila] = f_fecha_servidor()

Conexión a Oracle 11g desde PowerBuilder Classic 12.5

Para conectarse a una Base de Datos Oracle 11g desde PowerBuilder Classic 12.5 seguimos los siguientes pasos:

1. Buscamos el Driver ORA Oracle




2. Clic derecho y elegimos New Profile...

3. Ingresamos los datos de conexión en la pestaña Connection


4. En la pestaña System ingresamos el nombre del propietario del catalogo


5. En las pestaña Preview clic en botón Test Connection y listo.


Aquí el detalle del soporte de PowerBuilder y Oracle:

domingo, 13 de abril de 2008

Soporte para el Uso de PowerBuilder y Oracle 8.x, 9.x y 10g

En el sgte enlace encontraremos un documento que describe aspectos de interoperabilidad de PowerBuilder con Oracle, para mas informaciçon dar click a:

http://www.mtbase.com/contenido/documento?id=4,00052