Power Builder - Procedimiento Oracle en Power Builder

 
Vista:

Procedimiento Oracle en Power Builder

Publicado por eduardo.v (23 intervenciones) el 14/11/2014 22:48:57
Hola amigos foristas,

Que tal, después de tiempo que no escribo en el foro. espero que me puedan ayudar con una duda que tengo sobre Oracle y Power Builder por ese motivo escribo la consulta en ambos foros para tener mayores referencias.

Tengo una aplicación en Power Builder que tiene datawindows que utilizan procedimientos almacenados de SQL Server.
Hasta ahi todo bien. El problema es que quiero hacer lo mismo en otra aplicación que utiliza Oracle. En SQL Server puedo crear procedimientos que retornan consultas originadas por un select. Segun he entendido en Oracle no puedo hacer lo mismo pues para cada procedimiento tengo que colocar un into lo que no me permite trabajar de la manera como lo hacia con SQL Server. En otras palabras lo que quiero lograr es poder crear datawindows en power builder que esten relacionados a procedimientos de oracle.

Por ejemplo en SQL podia crear un sp de esta manera:
create proc usp_consulta
as
select columna1,columna2,columna3 from tabla1
go

Al ejecutar este procedimiento me devuelve el resultado del select tanto en consola (query analizer) como en el aplicativo (datawindows)...¿como puedo hacer esto con Oracle?

Saludos y Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Procedimiento Oracle en Power Builder

Publicado por angel garcia (54 intervenciones) el 15/11/2014 00:08:37
hola.

el problema no es oracle, ni sql server , tu puedes crear datawindows desde store procedures, lo que debes hacer es programar correctamente el sp e invocarlo, la ejecución es transparente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Procedimiento Oracle en Power Builder

Publicado por eduardo.v (23 intervenciones) el 15/11/2014 03:00:41
Angel

Gracias por responder pero la consulta es precisamente sobre ese tema...procedimientos en Oracle...disculpa pero tu comentario es redundante con respecto a mi consulta por lo que no es de mucha utilidad.

Favor quien pueda ayudarme con un ejemplo sencillo. Replicar el ejemplo que di de SQL Server en Oracle
Soy prácticamente experto en SQL Server pero en Oracle recién estoy entrando de a pocos.

Saludos y Gracias de Antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Procedimiento Oracle en Power Builder

Publicado por Hugo qn (33 intervenciones) el 18/11/2014 20:39:49
Hola Eduardo, cada lenguaje de programación/BD tiene maneras, formas o como quieremos llamarlo, de programación.

en Oracle para devolver una lista de registros usa una función cursor para eso puede crear tu mismo cursor, mejor vamos al grano.
aquí esta todo el codigo.

-- creación de pk
CREATE OR REPLACE PACKAGE PKG_hugo_qn
AS
TYPE refcur IS REF CURSOR;
END;

-- creación de SP
CREATE OR REPLACE PROCEDURE Sp_HUGO
( as_parametro1 IN VARCHAR2,
V_TABLE OUT PKG_hugo.refcur
)
IS
-- declaración de variables locales
li_variable1 Integer;
BEGIN
OPEN V_TABLE FOR
SELECT campo1, campo2 FROM tabla WHERE campo1 = as_parametro1;
END Sp_HUGO;

-- ejecución de sp
BEGIN
SP_HUGO('id001', :v_table$REFCURSOR);
END;

el PKG_hugo_qn puedes usar en cuantas SP que crees.

espero te ayude saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Procedimiento Oracle en Power Builder

Publicado por eduardo.v (23 intervenciones) el 18/11/2014 23:12:49
Hola Hugo

Gracias por responder he interpretado el codigo que enviaste a un caso puntual pero me sale error.
¿Podrias ayudarme? quizá hice algo mal.
Al ejecutar las ultimas 3 lineas me sale el siguiente mensaje de error:
"ORA-01008 not all variables bound"

El codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE OR REPLACE PACKAGE PQ_EVS AS
TYPE refcur IS REF CURSOR;
END PQ_EVS;
 
 
CREATE OR REPLACE PROCEDURE sp_fabricante
( V_TABLE OUT PQ_EVS.refcur )
IS
BEGIN
OPEN V_TABLE FOR
SELECT parte_cod, parte_desc FROM fabricante;
END sp_fabricante;
 
 
BEGIN
sp_fabricante(:V_TABLE$REFCURSOR);
END;

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Procedimiento Oracle en Power Builder

Publicado por eduardo.v (23 intervenciones) el 18/11/2014 23:38:33
Hugo

En un SQL Windows del PL/SQL me sale el error que te comentaba.
Pero cuando ejecuto el procedimiento en TEST se ejecuta sin problemas.
He creado el datawindow en PB y lo he relacionado al procedimiento y también se ejecuta sin errores con el resultado esperado.

Muchas gracias....era lo que estaba buscando desde hace algunos días.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar