因爲PostgreSQL9.x二進制輸出格式默認值改變致使的讀取圖片錯誤

今天從社區郵件看到一個這樣的問題,感受頗有意思,在這分享給你們~具體以下:前端

問題現象:sql

做者有一個很老的Java應用,當時後端採用的PostgreSQL數據庫版本爲8.x,該系統除了正常的數據增刪改查違,有一項功能是把圖片存儲到pgsql中,存儲類行爲bytea,而後再讀取使用。數據庫

做者近期作了數據庫的遷移,將pgsql8.x中的數據遷移到pgsql11版本上,遷移完成後,Java應用端的其餘功能都正常,只有圖片沒法正常讀取顯示了,可是寫入是沒問題的。這個問題困擾了做者好久。後端

解決辦法:blog

通過社區大神指點後,得知bytea的默認輸出格式從pgsql9.x版本開始改變了,在9.x版本以前,bytea_output的默認值爲escape,9.x以後,bytea_out的默認值就變成了hex。因此若是要與老版本的前端應用適配,能夠修改數據庫參數爲escape便可解決這個問題。圖片

相關文章
相關標籤/搜索