我有一個使用 Spring Data JPA、Flyway 和 H2 的 spring boot 專案,它試圖處理包含以下 SQL 陳述句的遷移腳本:
ALTER ROLE current_user SET search_path TO "$user", public, my_schema;
當 Flyway 嘗試運行此遷移時,我收到以下錯誤:
---------------------------------
SQL State : 42001
Error Code : 42001
Message : Syntax error in SQL statement "ALTER ROLE[*] CURRENT_USER SET SEARCH_PATH TO ""$user"", PUBLIC, MY_SCHEMA"; expected "TABLE, USER, INDEX, SCHEMA, SEQUENCE, VIEW"; SQL statement:
ALTER ROLE current_user SET search_path TO "$user", public, my_schema [42001-200]
看起來在這個程序中的某個地方,周圍的雙引號"$user"被一組額外的引號轉義了。
我該如何解決?
uj5u.com熱心網友回復:
ALTER ROLE是無效的h2 命令。(這也是,錯誤訊息聽起來如何。)我想你的意思是GRANT ROLE!(?)如果我們需要轉義
",請參考參考的名稱:
"anything" | U&"anything" [ UESCAPE 'anything' ]參考名稱中的字符大小寫按原樣保留。此類名稱可以包含空格。最大名稱長度為 256 個字符。兩個雙引號可用于在識別符號內創建單個雙引號。H2 中的默認設定識別符號區分大小寫。
所以"$user" 應該沒問題。
也可以看看:
- json 資料型別
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/390721.html
