我有一個簡單的問題來尋求幫助。Postgres @sqlupdate鑄造數據類型
以我的Postgres表「user_profile」我有以下「video_uploaded」列定義爲
id | character(19)
videos_uploaded | character(19)[] |
存儲該視頻ID(固定長度,19個字符)。
當我使用@SqlUpdate
array_append
功能在DAO接口像下面
@SqlUpdate("UPDATE user_profile set videos_uploaded = array_append(videos_uploaded, :vid) where id = :id")
void appendVideoToUpload(@Bind("id") String id, @Bind("vid") String vid);
程序會拋出以下異常
ERROR: function array_append(character[], character varying) does not exist ! Hint: No function matches the given name and argument types. You might need to add explicit type casts
似乎要求增加明確的類型轉換中寫道,我再加入鑄像
array_append(videos_uploaded::varchar[], :vid::varchar)
但類似的異常仍然發生。任何熟悉該問題的人都可以提供一些快速幫助嗎?謝謝!
羅伊
感謝您的回覆。試了兩種選擇,但仍然失敗。錯誤消息顯示「沒有命名參數匹配」char「,並且沒有設置位置1的位置參數,困難的部分似乎是將array_append(...)中的vid解析爲char(19)元素 –
這是從你的軟件在使用雙冒號(value :: type)來鑄造PostgreSQL風格時遇到了困難,使用'CAST(value AS type)'來代替它,它會工作。 –
@ R.Zheng我已經用例子更新了回覆CAST –