0

Quarkus アプリケーションの起動時に一連の SQL ビューを作成したいと思い、次のように書きました。

@Inject
EntityManager em;

public void exec(... sql) {
    logger.info("EXECUTING " ...);
    sql = "BEGIN\n" + sql + "\nEND";
    Query q = em.createNativeQuery(sql);
    q.executeUpdate();
}

そして、私のSQLファイルは次のとおりです。

CREATE OR REPLACE VIEW My_view_ex AS
SELECT cc.*, If(cc.beautifulName IS NULL, cc.name, cc.beautifulName) canonName FROM My_table cc;

CREATE OR REPLACE VIEW MyView2 AS
...

残念ながら、それは例外をスローし、

java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE OR REPLACE VIEW My_view_ex AS
SELECT cc.*, If(cc.beautifulName IS NU...' at line 2

sql変数の内容をデータベース クライアントにコピー ペーストして実行すると、動作します。つまり、実際には構文エラーはありません。おそらく、複数のクエリや行末などが嫌いです。

他に何が提案できますか?

4

0 に答える 0