Open mehrdod opened 6 years ago
Don't know. Can you try to use gopkg.in/goracle.v2 ? That's maintained, gopkg.in/rana/ora.v4 is not.
Mehrdod Odilzoda notifications@github.com ezt írta (időpont: 2018. szept. 19., Sze, 16:18):
I'm getting some cursor, which can be empty. Everything works good when I have some rows, but I'm getting next exception when cursor is empty: Exception 0xc0000005 0x0 0x10 0x52a215c PC=0x52a215c
runtime: unknown pc 0x52a215c stack: frame={sp:0x3e2cf90, fp:0x0} stack=[0x3c31ed0,0x3e2fed0) 0000000003e2ce90: 52005a0054002000 0000000000000000 0000000003e2cea0: 0000000000000000 0000000000000000 0000000003e2ceb0: 59592f4d4d2f4444 2e00440044000000 0000000003e2cec0: 52002e004d004d00 4800480020005200 0000000003e2ced0: 4d003a0034003200 530053003a004900 0000000003e2cee0: 2000460046005800 000052005a005400 0000000003e2cef0: 0000000000000000 0000000000000000 0000000003e2cf00: 0000000000000000 0000000000000000 0000000003e2cf10: 0000000000000000 0000000000000000 0000000003e2cf20: 000050add4648a1b 00000000052944b0 0000000003e2cf30: 000000000ce716d0 000000000ce6d710 0000000003e2cf40: 000000000ce6d710 000000000ce7eac8 0000000003e2cf50: 3a494d3a34324848 5a54204646585353 0000000003e2cf60: 000000000c539ef8 000000000464869c 0000000003e2cf70: 0000000000000001 0000000000000000 0000000003e2cf80: 0000000000000000 0000000000000000 0000000003e2cf90: <000000000c539ef8 0000000003e2d048 0000000003e2cfa0: 000000000ce7c9f0 00000000045137fe 0000000003e2cfb0: 000000000c539880 0000000000000000 0000000003e2cfc0: 0000000000000000 000000000ce6d530 0000000003e2cfd0: 000000000ce7c9f0 00000000053d9e1e 0000000003e2cfe0: 000000000cf5fb10 000000000ce6d450 0000000003e2cff0: 000000000ce6cc20 0000000004512229 0000000003e2d000: 0000000000000010 00000000046443a3 0000000003e2d010: 000000000ce6d530 0000000000005f11 0000000003e2d020: 000000000ce6cc20 000000000ce6cd18 0000000003e2d030: 000000000ce948f0 000000000529e121 0000000003e2d040: 0000000000000000 000000000ce948f0 0000000003e2d050: 0000000000000010 0000000000000001 0000000003e2d060: 0000000000000400 000000000451244c 0000000003e2d070: 0000000000000010 00000000046443a3 0000000003e2d080: 000000000c87f510 000000000cf69200 runtime: unknown pc 0x52a215c stack: frame={sp:0x3e2cf90, fp:0x0} stack=[0x3c31ed0,0x3e2fed0) 0000000003e2ce90: 52005a0054002000 0000000000000000 0000000003e2cea0: 0000000000000000 0000000000000000 0000000003e2ceb0: 59592f4d4d2f4444 2e00440044000000 0000000003e2cec0: 52002e004d004d00 4800480020005200 0000000003e2ced0: 4d003a0034003200 530053003a004900 0000000003e2cee0: 2000460046005800 000052005a005400 0000000003e2cef0: 0000000000000000 0000000000000000 0000000003e2cf00: 0000000000000000 0000000000000000 0000000003e2cf10: 0000000000000000 0000000000000000 0000000003e2cf20: 000050add4648a1b 00000000052944b0 0000000003e2cf30: 000000000ce716d0 000000000ce6d710 0000000003e2cf40: 000000000ce6d710 000000000ce7eac8 0000000003e2cf50: 3a494d3a34324848 5a54204646585353 0000000003e2cf60: 000000000c539ef8 000000000464869c 0000000003e2cf70: 0000000000000001 0000000000000000 0000000003e2cf80: 0000000000000000 0000000000000000 0000000003e2cf90: <000000000c539ef8 0000000003e2d048 0000000003e2cfa0: 000000000ce7c9f0 00000000045137fe 0000000003e2cfb0: 000000000c539880 0000000000000000 0000000003e2cfc0: 0000000000000000 000000000ce6d530 0000000003e2cfd0: 000000000ce7c9f0 00000000053d9e1e 0000000003e2cfe0: 000000000cf5fb10 000000000ce6d450 0000000003e2cff0: 000000000ce6cc20 0000000004512229 0000000003e2d000: 0000000000000010 00000000046443a3 0000000003e2d010: 000000000ce6d530 0000000000005f11 0000000003e2d020: 000000000ce6cc20 000000000ce6cd18 0000000003e2d030: 000000000ce948f0 000000000529e121 0000000003e2d040: 0000000000000000 000000000ce948f0 0000000003e2d050: 0000000000000010 0000000000000001 0000000003e2d060: 0000000000000400 000000000451244c 0000000003e2d070: 0000000000000010 00000000046443a3 0000000003e2d080: 000000000c87f510 000000000cf69200
goroutine 18 [syscall]:gopkg.in/rana/ora%2ev4._Cfunc_OCIStmtFetch2(0xce7c9f0, 0xce6cc20, 0x200000000, 0x0, 0x0) _cgo_gotypes.go:1319 +0x54gopkg.in/rana/ora%2ev4.(Rset).beginRow.func1(0xce7c9f0, 0xce6cc20, 0x200000000, 0x0, 0xc0422f4bd0) C:/Users/OdilzodaM/go/src/gopkg.in/rana/ora.v4/rset.go:262 +0xb8gopkg.in/rana/ora%2ev4.(Rset).beginRow(0xc0422da0e0, 0x0, 0x0) C:/Users/OdilzodaM/go/src/gopkg.in/rana/ora.v4/rset.go:262 +0x3c0gopkg.in/rana/ora%2ev4.(Rset).Next(0xc0422da0e0, 0x0) C:/Users/OdilzodaM/go/src/gopkg.in/rana/ora.v4/rset.go:370 +0xf3 iborg_integration/models.GetAccounts(0xc042280031, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) C:/Users/OdilzodaM/go/src/iborg_integration/models/accounts.go:59 +0x392 iborg_integration/routes.getAccounts(0xc0422ea000) C:/Users/OdilzodaM/go/src/iborg_integration/routes/accounts.go:11 +0x74github.com/gin-gonic/gin.(Context).Next(0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/context.go:108 +0x4agithub.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/recovery.go:48 +0x61github.com/gin-gonic/gin.(Context).Next(0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/context.go:108 +0x4agithub.com/gin-gonic/gin.LoggerWithWriter.func1(0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/logger.go:84 +0xd3github.com/gin-gonic/gin.(Context).Next(0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/context.go:108 +0x4agithub.com/gin-gonic/gin.(Engine).handleHTTPRequest(0xc0422aa240, 0xc0422ea000) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/gin.go:361 +0x58dgithub.com/gin-gonic/gin.(Engine).ServeHTTP(0xc0422aa240, 0xc8a420, 0xc0422da000, 0xc042147300) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/gin.go:326 +0x15a net/http.serverHandler.ServeHTTP(0xc0422824e0, 0xc8a420, 0xc0422da000, 0xc042147300) C:/Go/src/net/http/server.go:2694 +0xc3 net/http.(conn).serve(0xc0422883c0, 0xc8ae20, 0xc042228c80) C:/Go/src/net/http/server.go:1830 +0x658 created by net/http.(Server).Serve C:/Go/src/net/http/server.go:2795 +0x282
goroutine 1 [IO wait]: internal/poll.runtime_pollWait(0x2ed0ea0, 0x72, 0xc867c0) C:/Go/src/runtime/netpoll.go:173 +0x5e internal/poll.(pollDesc).wait(0xc0422b0488, 0x72, 0xf89400, 0x0, 0x0) C:/Go/src/internal/poll/fd_poll_runtime.go:85 +0xa2 internal/poll.(ioSrv).ExecIO(0xfca468, 0xc0422b02d8, 0xc04226e720, 0x1, 0x0, 0x458) C:/Go/src/internal/poll/fd_windows.go:223 +0x13a internal/poll.(FD).acceptOne(0xc0422b02c0, 0x458, 0xc0422c41c0, 0x2, 0x2, 0xc0422b02d8, 0x47a4d9, 0xc0420739e8, 0x41220f, 0x10) C:/Go/src/internal/poll/fd_windows.go:793 +0xae internal/poll.(FD).Accept(0xc0422b02c0, 0xc04226a410, 0x0, 0x0, 0x0, 0x0, 0xc000000000, 0x0, 0x0, 0x0, ...) C:/Go/src/internal/poll/fd_windows.go:827 +0x142 net.(netFD).accept(0xc0422b02c0, 0xc0422884e0, 0xc042073b58, 0x402858) C:/Go/src/net/fd_windows.go:192 +0x86 net.(TCPListener).accept(0xc04226c080, 0xc042073b88, 0x4016fe, 0xc0422884e0) C:/Go/src/net/tcpsock_posix.go:136 +0x35 net.(TCPListener).AcceptTCP(0xc04226c080, 0xc042073bd0, 0xc042073bd8, 0x18) C:/Go/src/net/tcpsock.go:246 +0x50 net/http.tcpKeepAliveListener.Accept(0xc04226c080, 0xc1a640, 0xc042288460, 0xc8aee0, 0xc042268c30) C:/Go/src/net/http/server.go:3216 +0x36 net/http.(Server).Serve(0xc0422824e0, 0xc8aa20, 0xc04226c080, 0x0, 0x0) C:/Go/src/net/http/server.go:2770 +0x1ac net/http.(Server).ListenAndServe(0xc0422824e0, 0xc0422824e0, 0xc04226a390) C:/Go/src/net/http/server.go:2711 +0xb0 net/http.ListenAndServe(0xc042286570, 0x5, 0xc853c0, 0xc0422aa240, 0x1, 0x44381e) C:/Go/src/net/http/server.go:2969 +0x81github.com/gin-gonic/gin.(Engine).Run(0xc0422aa240, 0xc042073db8, 0x1, 0x1, 0x0, 0x0) C:/Users/OdilzodaM/go/src/github.com/gin-gonic/gin/gin.go:287 +0x13f iborg_integration/routes.Init() C:/Users/OdilzodaM/go/src/iborg_integration/routes/routes.go:34 +0x20b main.main() C:/Users/OdilzodaM/go/src/iborg_integration/main.go:18 +0x17b
goroutine 19 [IO wait]: internal/poll.runtime_pollWait(0x2ed0d00, 0x72, 0xc867c0) C:/Go/src/runtime/netpoll.go:173 +0x5e internal/poll.(pollDesc).wait(0xc0422b0a08, 0x72, 0xf89400, 0x0, 0x0) C:/Go/src/internal/poll/fd_poll_runtime.go:85 +0xa2 internal/poll.(ioSrv).ExecIO(0xfca468, 0xc0422b0858, 0xc1a418, 0x40, 0x38, 0xb67a00) C:/Go/src/internal/poll/fd_windows.go:223 +0x13a internal/poll.(FD).Read(0xc0422b0840, 0xc0422c8000, 0x1000, 0x1000, 0x0, 0x0, 0x0) C:/Go/src/internal/poll/fd_windows.go:484 +0x248 net.(netFD).Read(0xc0422b0840, 0xc0422c8000, 0x1000, 0x1000, 0xc042255978, 0x7fd942, 0xb67a00) C:/Go/src/net/fd_windows.go:151 +0x56 net.(conn).Read(0xc04226c098, 0xc0422c8000, 0x1000, 0x1000, 0x0, 0x0, 0x0) C:/Go/src/net/net.go:176 +0x71 net/http.(connReader).Read(0xc042268d80, 0xc0422c8000, 0x1000, 0x1000, 0x0, 0x0, 0x0) C:/Go/src/net/http/server.go:764 +0xff bufio.(Reader).fill(0xc04225c240) C:/Go/src/bufio/bufio.go:100 +0x125 bufio.(Reader).ReadSlice(0xc04225c240, 0xa, 0xc042255ad8, 0x4114ed, 0x3aa368, 0x0, 0xc042255ac0) C:/Go/src/bufio/bufio.go:341 +0x33 bufio.(Reader).ReadLine(0xc04225c240, 0xc0422ca000, 0x100, 0xf8, 0xbd9ea0, 0x1, 0x100c04203ac00) C:/Go/src/bufio/bufio.go:370 +0x3b net/textproto.(Reader).readLineSlice(0xc042268db0, 0xc04208d001, 0xc042255ba8, 0x41220f, 0x100, 0xbd9ea0) C:/Go/src/net/textproto/reader.go:55 +0x77 net/textproto.(Reader).ReadLine(0xc042268db0, 0xc0422ca000, 0x0, 0x0, 0x72) C:/Go/src/net/textproto/reader.go:36 +0x32 net/http.readRequest(0xc04225c240, 0x0, 0xc0422ca000, 0x0, 0x0) C:/Go/src/net/http/request.go:929 +0x93 net/http.(conn).readRequest(0xc042288460, 0xc8ae20, 0xc042272440, 0x0, 0x0, 0x0) C:/Go/src/net/http/server.go:944 +0x176 net/http.(conn).serve(0xc042288460, 0xc8ae20, 0xc042272440) C:/Go/src/net/http/server.go:1768 +0x4e3 created by net/http.(Server).Serve C:/Go/src/net/http/server.go:2795 +0x282
goroutine 34 [IO wait]: internal/poll.runtime_pollWait(0x2ed0dd0, 0x72, 0xc867c0) C:/Go/src/runtime/netpoll.go:173 +0x5e internal/poll.(pollDesc).wait(0xc0422b0748, 0x72, 0xf89400, 0x0, 0x0) C:/Go/src/internal/poll/fd_poll_runtime.go:85 +0xa2 internal/poll.(ioSrv).ExecIO(0xfca468, 0xc0422b0598, 0xc1a418, 0x0, 0x0, 0x0) C:/Go/src/internal/poll/fd_windows.go:223 +0x13a internal/poll.(FD).Read(0xc0422b0580, 0xc0422741c1, 0x1, 0x1, 0x0, 0x0, 0x0) C:/Go/src/internal/poll/fd_windows.go:484 +0x248 net.(netFD).Read(0xc0422b0580, 0xc0422741c1, 0x1, 0x1, 0x0, 0x0, 0x0) C:/Go/src/net/fd_windows.go:151 +0x56 net.(conn).Read(0xc04226c090, 0xc0422741c1, 0x1, 0x1, 0x0, 0x0, 0x0) C:/Go/src/net/net.go:176 +0x71 net/http.(connReader).backgroundRead(0xc0422741b0) C:/Go/src/net/http/server.go:668 +0x61 created by net/http.(*connReader).startBackgroundRead C:/Go/src/net/http/server.go:664 +0xd5 rax 0x0 rbx 0x0 rcx 0xce7c9f0 rdi 0x0 rsi 0xce6d450 rbp 0x0 rsp 0x3e2cf90 r8 0x400f r9 0x0 r10 0x0 r11 0xce7c9f0 r12 0x0 r13 0x0 r14 0x0 r15 0xce7c9f0 rip 0x52a215c rflags 0x10206 cs 0x33 fs 0x53 gs 0x2b
Process finished with exit code 0
My code is next
getAccCall, err := ses.Prep("BEGIN z$iborg_services_lib.get_accounts(:customerId, :accounts, :errorCode, :errorDescription); END;") defer getAccCall.Close()
if err != nil { panic(err) } accountsCursor := &ora.Rset{} _, err = getAccCall.Exe(customerID, accountsCursor, &errorCode, &errorDescription)
if err != nil { panic(err) }
fieldNames := accountsCursor.ColumnIndex()
if accountsCursor.IsOpen() { err := accountsCursor.Err() if err == nil { for accountsCursor.Next() { fmt.Println("ok")
account.AccNumber = accountsCursor.Row[fieldNames["C_NUMBER"]].(string) account.Balance = accountsCursor.Row[fieldNames["BALANCE"]].(string) account.Branch = accountsCursor.Row[fieldNames["BRANCH"]].(string) account.Currency = accountsCursor.Row[fieldNames["CURRENCY"]].(string) account.CurrencyISO = accountsCursor.Row[fieldNames["CURRENCY_ISO"]].(string) account.Opened = accountsCursor.Row[fieldNames["OPENED"]].(string) account.Status = accountsCursor.Row[fieldNames["STATUS"]].(string) accountsList.Accounts = append(accountsList.Accounts, account) } }
}
Error is in this line for accountsCursor.Next() { And if we go dipper with debugger it is here beginRow()
r := C.OCIStmtFetch2( rset.ocistmt, //OCIStmt stmthp, env.ocierr, //OCIError errhp, C.ub4(rset.fetchLen), //ub4 nrows, C.OCI_FETCH_NEXT, //ub2 orientation, C.sb4(0), //sb4 fetchOffset, C.OCI_DEFAULT) //ub4 mode );
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rana/ora/issues/255, or mute the thread https://github.com/notifications/unsubscribe-auth/AAPoSiaFHVdGNAv3Tk5pR9VDJdxj8oamks5uclImgaJpZM4WwRJX .
Don't know. Can you try to use gopkg.in/goracle.v2 ? That's maintained, gopkg.in/rana/ora.v4 is not. Mehrdod Odilzoda notifications@github.com ezt írta (időpont: 2018. szept. 19., Sze, 16:18):
@tgulacsi Still can't solve this issue. I should defenetly use another driver. Is it any example avalable for "goracle.v2"? Thanks
You can use goracle.WrapRows
to create a database/sql.Rows
which can be used just as a regular Rows
, with its Scan
method - no need to find out the columns' types exactly.
How can I call stored procedures using your driver?
On Mon, Oct 22, 2018, 19:39 Tamás Gulácsi notifications@github.com wrote:
You can use goracle.WrapRows to create a database/sql.Rows which can be used just as a regular Rows, with its Scan method - no need to find out the columns' types exactly.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rana/ora/issues/255#issuecomment-431854986, or mute the thread https://github.com/notifications/unsubscribe-auth/AIa4P0GJ46MZTpw7fKIQngG1lRLBGMqXks5undi2gaJpZM4WwRJX .
I'm getting some cursor, which can be empty. Everything works good when I have some rows, but I'm getting next exception when cursor is empty: Exception 0xc0000005 0x0 0x10 0x52a215c PC=0x52a215c
My code is next
Error is in this line
for accountsCursor.Next() {
And if we go dipper with debugger it is herebeginRow()