Hola,
¿se puede realizar eso? ¿Cómo (qué tipo de variable defines que luego puedas devolver mediante un return y que lo que devuelva sea los registros de tipo select, para recoger desde una página ASP)?
| |||
| Devolver una consulta select desde un PL Hola, ¿se puede realizar eso? ¿Cómo (qué tipo de variable defines que luego puedas devolver mediante un return y que lo que devuelva sea los registros de tipo select, para recoger desde una página ASP)? |
| |||
| Re: Devolver una consulta select desde un PL Es decir, ¿con un procedimiento en lugar de una función? Bueno, y si hay que añadir ese parámetro, lo veo demasiado poco directo, creo que buscaré una solución alternativa. Gracias, un saludo |
| ||||
| Re: Devolver una consulta select desde un PL Hola, Es lo mismo utilizar una funcion que un procedimiento, la diferencia es donde esperar el sys_refcursor, ya sea por retorno o por parametro de salida.
Código:
La idea era comentar que sys_refcursor es el tipo de dato que provee Oralce para devolver un conjunto de resultados hacia ADO.SQL> create or replace function f1 return sys_refcursor 2 is 3 q sys_refcursor; 4 begin 5 open q for select * from dual; 6 return q; 7 end; 8 / Function created. Saludos |
| ||||
| Re: Devolver una consulta select desde un PL Hola, Eso depende de como estes accediendo a base de datos, posteo un ejemplo que utiliza ADO 2.8 y jscript.
Código:
Ahora el ConnectionString de ADOSQL> create table t10 (id number, nombre varchar2(100));
Tabla creada.
SQL> insert into t10 values (1,'nombre 1');
1 fila creada.
SQL> insert into t10 values (2,'nombre 2');
1 fila creada.
SQL> insert into t10 values (3,'nombre 3');
1 fila creada.
SQL> commit;
SQL> select * from t10;
ID NOMBRE
---------- ------------------------------------
1 nombre 1
2 nombre 2
3 nombre 3
SQL>
SQL> create or replace procedure p1 (c out sys_refcursor)
2 is
3 begin
4 open c for
5 select * from t10;
6 end;
7 /
Procedimiento creado.
Código:
Saludos. "Provider=OraOLEDB.Oracle.1;Password=xxx;Persist Security Info=True;User ID=user_name;Data Source=ora_sid;PLSQLRSet=1;" Última edición por matanga; 15/11/2007 a las 01:31 Razón: Se quita codigo de programacion, no corresponde al foro. |