'ORA-03146: invalid buffer length for TTC field' on procedure call with out parameter
stle04 opened this issue · 0 comments
stle04 commented
Hi
I faced with issue on 2.8.13 version
I have a procedure
CREATE OR REPLACE PROCEDURE PP(value OUT NUMBER)
AS BEGIN
SELECT 1 INTO value from dual;
END;
and next code Go code
package main
import (
"context"
"database/sql"
"fmt"
_ "github.com/sijms/go-ora/v2"
)
const url = "oracle://user:pass@localhost:1521/XE"
func main() {
ctx := context.TODO()
db, err := sql.Open("oracle", url)
if err != nil {
fmt.Println("Can't open database: ", err)
return
}
defer func() {
err = db.Close()
if err != nil {
fmt.Println("Can't close database: ", err)
}
}()
conn, err := db.Conn(ctx)
if err != nil {
fmt.Println("Can't open connection: ", err)
return
}
defer func() {
err = conn.Close()
if err != nil {
fmt.Println("Can't close connection: ", conn)
}
}()
var value int
_, err = conn.ExecContext(
ctx,
`CALL PP(
value => :1
)`,
&sql.Out{Dest: &value},
)
if err != nil {
fmt.Println("Can't exec: ", err)
return
}
fmt.Println("ok")
}
And the output for that code is
Can't exec: ORA-03146: invalid buffer length for TTC field