這是我的函數: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 30STATEMENT: SELECT fn_airlines_getby_id(?)所以似乎沒有解析應該去的值而不是(它適用于正常查詢)sqlx?這是一個Postgres數據庫,該函數存在。
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
使用Postgres的參數占位符而不是sqlx的占位符。更改自
SELECT fn_airlines_getby_id(?)
自:
SELECT * FROM fn_airlines_getby_id($1)
- 1 回答
- 0 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消