这是我的函数:
func (a *AirlinesRepository) Get(id int) *models.Airline {
airline := models.Airline{}
a.DB.Get(&airline, "SELECT * FROM fn_airlines_getby_id(?)", id)
return &airline
}
执行数据库后。获取,航空公司将所有属性设置为零值,而不是使用 sql 函数结果进行填充。我还尝试了“选择fn_airlines_getby_id(?)”和“fn_airlines_getby_id(?)”
航空公司具有以下特性:
type Airline struct {
Id int64 `db:"id"`
Name string `db:"name"`
}
功能如下:
CREATE OR REPLACE FUNCTION fn_airlines_getby_id(p_id INT)
RETURNS TABLE (id INT, name VARCHAR) AS
$$
BEGIN
RETURN QUERY
SELECT a.id AS id, a.name AS name FROM airlines as a WHERE a.id = p_id;
END
$$ LANGUAGE plpgsql;
更新:查看Postgres的日志,我发现了下一个:
ERROR: syntax error at or near ")" at character 30
STATEMENT: SELECT fn_airlines_getby_id(?)
所以似乎没有解析应该去的值而不是(它适用于正常查询)sqlx?
这是一个Postgres数据库,该函数存在。
三国纷争
相关分类