oracle, procedimiento almacenado y macro en excel
Publicado por Enrique (2 intervenciones) el 27/06/2016 15:55:27
Hola a todos, este es mi primer post.
He estado trabajando para poder obtener desde excel el resultado de un procedimiento almacenado. He seguido un tutorial que encontré en el que se define una tabla y el procedimiento almacenado en la WEB http://www.mkyong.com/oracle/oracle-stored-procedure-cursor-example/ y luego de ingresar unos cuantos registros a la tabla todo funciona bien incluso la ejecución del procedimiento almacenado.
Lo que no he podido encontrar es cómo ejecutar y recibir la información desde un macro de Excel, tal que pueda:
1. Conectar a la base de datos Oracle
2. Definir la consulta y los parámetros necesarios para enviar el query
3. Recibir los datos y ponerlos en una hoja de excel.
De lo que he encontrado lo más cerca que he estado de lograrlo es con este código (el que he visto más simple y a la vez me ha permitido llegar más lejos) pero recibo un error ya que, por lo que parece, estoy definiendo mal los parámetros. Espero que me puedan ayudar.
He estado trabajando para poder obtener desde excel el resultado de un procedimiento almacenado. He seguido un tutorial que encontré en el que se define una tabla y el procedimiento almacenado en la WEB http://www.mkyong.com/oracle/oracle-stored-procedure-cursor-example/ y luego de ingresar unos cuantos registros a la tabla todo funciona bien incluso la ejecución del procedimiento almacenado.
Lo que no he podido encontrar es cómo ejecutar y recibir la información desde un macro de Excel, tal que pueda:
1. Conectar a la base de datos Oracle
2. Definir la consulta y los parámetros necesarios para enviar el query
3. Recibir los datos y ponerlos en una hoja de excel.
De lo que he encontrado lo más cerca que he estado de lograrlo es con este código (el que he visto más simple y a la vez me ha permitido llegar más lejos) pero recibo un error ya que, por lo que parece, estoy definiendo mal los parámetros. Espero que me puedan ayudar.
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
Public Sub ConeccDB()
Dim conn As ADODB.Connection
Dim rst As ADODB.recordset
Dim cmd As ADODB.Command
Dim par1, par2 As ADODB.Parameter
Set conn = New ADODB.Connection
conn.Open "Driver={Microsoft ODBC for Oracle};" & _
"Server=127.0.0.1;" & _
"Uid=usuario;" & _
"Pwd=pass"
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "getDBUSERCursor"
cmd.CommandType = adCmdStoredProc
'Aquí empiezo a confundirme ya que según entiendo el parámetro de entrada se define así
Set par1 = cmd.CreateParameter("entrada", adVariant, adParamInput)
par1.Value = "usuario"
cmd.Parameters.Append par1
'Y el parámetro de salida es del cual obtengo los resultados del cursor
Set par2 = cmd.CreateParameter("salida", adIUnknown, adParamOutput)
cmd.Parameters.Append par2
Set rst = New ADODB.recordset
'En esta línea obtengo el error: "Tipo de parámetro no compatible"
Set rst = cmd.Execute
'De aquí en adelante se supone que el resultado aparece a partir de la casilla A4
Sheet1.Cells(4, 1).CopyFromRecordset rst
Set cmd = Nothing
Set par1 = Nothing
Set par2 = Nothing
rst.Close
Set rst = Nothing
conn.Close
Set conn = Nothing
End Sub
Valora esta pregunta


0