Oracle - Call Store Procedure from .NET

 
Vista:
sin imagen de perfil

Call Store Procedure from .NET

Publicado por Carlos (5 intervenciones) el 09/06/2014 22:24:00
En mipaquete PKG_BACK_CONSULTA tengo el procedimiento almacenado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
PROCEDURE SP_BATCHBIBLIOTECA(P_CURSOR IN OUT T_CURSOR, P_XML varchar2)
       IS
              V_CURSOR T_CURSOR;
              V_XML   SYS.XMLTYPE;
              V_DOC   CLOB;
              V_ID    NUMBER;
       BEGIN
 
       V_DOC := P_XML;
       V_XML := sys.xmltype.createXML(V_DOC);
 
       select
          x.Id
          into
          V_ID
 
          from  xmltable('/PAXLST_Message/Parametro'
                   passing v_xml
                   columns
                          Id         NUMBER       path '//Id'
                 ) x;
 
 
        OPEN V_CURSOR FOR
          SELECT
               p.vfechaprestamo,
               l.marc852c_clasificacion || '/' || l.marc852d_clasificacion as Clasificacion,
               cast (lpad(p.nidserie, 8, '0') as varchar2(8)) as nidserie,
               l.marc245a_titulo,
               u.apellido_materno || ' ' || u.apellido_paterno || ', ' || u.nombres as NombreUsuario,
               u.codigo as Usuario, u.correo_electronico,
               pt.dias_prestamo,
               round((sysdate - to_date(p.vfechaprestamo,'DD/MM/YYYY'))) AS DiasPrestado,
               (round((sysdate - to_date(p.vfechaprestamo,'DD/MM/YYYY'))) -pt.dias_prestamo) AS DiasAtraso
          from prestamo p, libros l, usuarios u, permisos_tipodocumento pt
          WHERE l.id = p.nidlibro
             And u.tipo_acceso = pt.id_permiso
             and u.id = p.nidpersona
             And pt.id_tipodocumento = l.marc852a_institucion
             And p.nestado =1
             And u.codigo = 'snaveda'
             --And (round((sysdate - to_date(p.vfechaprestamo,'DD/MM/YYYY'))) -pt.dias_prestamo) in (0,2)
         ORDER BY p.vFechaPrestamo desc;
 
 
          P_CURSOR := V_CURSOR;
 
   end;
 
Me sale este error:
ORA-06550: línea 1, columna 7:
PLS-00201: el identificador 'PKG_BACK_CONSULTA.SP_BATCHBIBLIOTECA' se debe declarar
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored

Mi Codigo.NET es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DataSet dsLista = new DataSet();
        string Conexion = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)               (HOST=10.0.2.63)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DESARROLLO)));User Id=biblio_apli;Password=c0nsulta;";
        string strXML = "";
 
OracleConnection con = new OracleConnection(Conexion);
            con.Open();
 
 
            OracleCommand cmd = new OracleCommand();
            cmd.Connection = con;
            cmd.CommandText = "PKG_BACK_CONSULTA.SP_BATCHBIBLIOTECA";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new OracleParameter("P_CURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output;
            cmd.Parameters.Add(new OracleParameter("P_XML", OracleType.VarChar)).Value = strXML;
            cmd.ExecuteNonQuery();
 
            OracleDataAdapter da = new OracleDataAdapter(cmd);
            da.Fill(dsLista);
 
            gvMorosos.DataSource = dsLista.Tables[0];
            con.Close();

AYUDA PORFAVOOOR!
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
sin imagen de perfil

Call Store Procedure from .NET

Publicado por Carlos (5 intervenciones) el 10/06/2014 01:27:49
COMO SIEMPRE, YA RESOLVI EL PROBLEMA..

AL PARECER ESTA PAGINA ESTA LLENA DE PROGRAMADORES FRUSTRADOS QUE NO SABEN ABSOLUTAMENTE NADA
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
Imágen de perfil de xve

Call Store Procedure from .NET

Publicado por xve (18 intervenciones) el 10/06/2014 07:58:15
Hola Carlos, en vez de tus comentarios, que entiendo que no te hayamos podido ayudar, podrías mostrarnos la solución para los que queremos aprender?
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

Call Store Procedure from .NET

Publicado por Carlos (5 intervenciones) el 10/06/2014 22:14:26
Estaba caliente y por eso comenté lo que comenté, pero bueno. Hasta ahora me parece confuso la verdad.
Trabajo con proyectos WEB ASP.NET utilizando una cadena de conexion: (Ejemplo) Usuario: abc, password: 123
Pero ahora estoy usando proyecto WINFORM, utilizaba la misma cadena de conexion y me salia error:

Me sale este error:
ORA-06550: línea 1, columna 7:
PLS-00201: el identificador 'PKG_BACK_CONSULTA.SP_BATCHBIBLIOTECA' se debe declarar
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored

Inclusive, en el .Net, voy a la pestaña VER y a explorador de servidores, ingreso el usuario: abc y pass 123, pruebo la conexion y me sale error.

Investigando e investigando, me di con la sorpresa de que, al ejecutar el PLSQL Developer donde trabajo realizando mis tablas y mis store procedures del oracle, me conecto con (Ejemplo) Usuario: CARLOS, Password: 789

Y por curioso, la cadena de conexion que uso en mis proyectos web con Usuario: abc, password: 123, la cambie por Usuario: CARLOS, Password: 789, osea con el cual ejecuto el PLSQL Developer. Y funcionó. Y para salir de dudas, nuevamente me dirigí a la pestaña VER y a explorador de servidores, ingreso el usuario: CARLOS y pass 789, pruebo la conexion y la conexion fue correcta.

Estuve leyendo en foros y lo poco que entendi es que, tu cadena de conexion podra manejarse sin problemas para los proyectos WEB ya que actua como cliente y servidor, pero en mi caso, con el WINFORM es solo cliente, y para conectarme con un servidor, necesito tener permisos mediante un usuario, porque sino no va a encontrar la base de datos, es por eso que en la linea del error donde dice: el identificador 'PKG_BACK_CONSULTA.SP_BATCHBIBLIOTECA' se debe declarar quiere decir que no encuentra el store procedure ni la bd.

De todas maneras sigo investigando para llegar al fondo de esto ya que no me confio, pero si funciona, ya no lo toco.
Espero hayas entendido algo.
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