Oracle – ORA-01000: maximum open cursors exceeded golang

I have a service that runs a stack. For this, it performs the reading of this stack through a query in Oracle. It turns out that, after hours of execution, I receive the message:

ORA-01000: maximum open cursors exceeded

I wonder what could be happening. I have a global variable that opens the connection and when I run a query I always verify its connection and copy it to the local variable.

In Rows.Next (), so I read, when checking if there are no more lines, close the cursor, so I could not have accumulated so many open cursors to exceed the limit.

Bank connection:

type GERENCIACON struct {
DataBase *sql.DB
}

func (gc *GERENCIACON) F_FECHAR_CONEXAO() {
gc.DataBase.Close()
}

func (gc *GERENCIACON) F_ABRIR_CONEXAO()  { 
if gc.DataBase == nil || gc.DataBase.Ping() != nil {    
    gc.DataBase, _ = sql.Open("goracle", "X/X@10.0.254.10:1521/orcl")
}
}

var VGGerenciaConexao GERENCIACON

Structure for consultation:

type GERENCIACONSULTA struct {
DataBase *sql.DB
Rows *sql.Rows
}

func (gc *GERENCIACONSULTA) F_EXECUTA_CONSULTA(pSql string) {
VGGerenciaConexao.F_ABRIR_CONEXAO()
gc.DataBase = VGGerenciaConexao.DataBase
gc.Rows, _ = gc.DataBase.Query(pSql)
}

Pile Execution Service

 var vGerenciaConsulta CertanoLabsPackage.GERENCIACONSULTA
 var vSQL string

  for {
    vSQL = "select * from stack "   

   vGerenciaConsulta.F_EXECUTA_CONSULTA(vSQL)

      for vGerenciaConsulta.Rows.Next() {
      ...
     }

time.Sleep(time.Minute)
 }

Could someone tell me what could be happening?