sijms / go-ora

Pure go oracle client
MIT License
771 stars 169 forks source link

Oracle Type with Subtype. ORA-00600: internal error code, arguments: [kope2_readstr232], [1], [], [], [], [], [], [], [], [], [], [] #492

Closed dened3 closed 6 months ago

dened3 commented 7 months ago

Hi

//Oracle types create or replace type subType as object( num number, name varchar2(100) ); create or replace type mainType as object( num number, sub subType );

// Go code

import (
    "database/sql"
    "fmt"
    go_ora "github.com/sijms/go-ora/v2"
)

type sub struct {
    Num  float64 `udt:"NUM"`
    Name string  `udt:"NAME"`
}
type mainS struct {
    Num float64 `udt:"NUM"`
    Sub sub     `udt:"SUB"`
}
func main() {
        db, err := sql.Open("oracle", "connection string")

        err = go_ora.RegisterType(db, "subType", "", sub{})
    err = go_ora.RegisterType(db, "mainType", "", mainS{})
        //
    var v_s sub
    v_s.Num = 1
    v_s.Name = `test`
        //
    var v_m mainS
    v_m.Num = 5
    v_m.Sub = v_s
        //
    _, err = db.Exec(`
        declare
        v_main mainType;
    begin
        v_main := :p_main;
    end;`,
        sql.Named(`p_main`, v_m),
    )
    fmt.Println(err)
}

// Output ORA-00600: internal error code, arguments: [kope2_readstr232], [1], [], [], [], [], [], [], [], [], [], []

Thanks

sijms commented 6 months ago

Hi @dened3 I get the issue and i am working on fixing it

sijms commented 6 months ago

fixed in v2.8.5

dened3 commented 6 months ago

It works!!! Thanks a lot