将数据库/sql包与oracle驱动程序一起使用时,LastInsertId返回0

将数据库/sql包与oracle驱动程序一起使用时,LastInsertId返回0,oracle,go,last-insert-id,lastinsertid,Oracle,Go,Last Insert Id,Lastinsertid,我正在使用带有oracle驱动程序的database/sql包(“gopkg.in/rana/ora.v4”),当我插入数据时,它的LastInsertId方法返回0,而数据已成功插入。 附加代码 package main import ( “database/sql” “fmt” _ "gopkg.in/rana/ora.v4" ) func main() { conn, err = sql.Open(“ora”, username+"/"+pa

我正在使用带有oracle驱动程序的database/sql包(“gopkg.in/rana/ora.v4”),当我插入数据时,它的LastInsertId方法返回0,而数据已成功插入。 附加代码

package main

import (
    “database/sql”
    “fmt”

    _ "gopkg.in/rana/ora.v4"
)

func main() {
    conn, err = sql.Open(“ora”, 
    username+"/"+password+"@"+host+":"+port+"/"+sid)
    query := “INSERT INTO Table (C2) VALUES (:C2)”
    result, err := conn.Exec(query, “Test”)
    if err!= nil {
        panic(err)
    }
    lastId := result.LastInsertId() // returning 0
    fmt.Println(lastId)
}
请告诉我为什么会发生这种情况?

来自(重点添加):

最后插入
数据库/sql
包提供了一个LastInsertId方法来返回最后插入的行的id。Oracle不提供这种功能,但是如果您附加
。。。将col/*LastInsertId*/
返回到您的SQL,然后它将显示为LastInsertId。
注意,您必须使用
/*LastInsertId*/
(不区分大小写)标记
返回的
部分,以允许ora将最后一列作为
LastInsertId()
返回。但是,该列必须适合
int64