0

.sql ファイルを読み取り、休止状態で実行することにより、生成されたクエリに問題があります。

エラー生成の手順: .sql ファイルを読み取ります。--> hibernate の SQLQuery オブジェクトを作成します。-->クエリを実行します。休止状態セッションが存在すると仮定して、このスニペットに従ってください。私は hibernate 4.2.0.1.Final と Spring の 3.2.1.RELEASE バージョンを使用しています。

        // optimization.sql is having 1500 lines of Indexes script...     
        private static String resource = "/com/iqx/storage/queries/optimization.sql";        
        InputStream is = ExcelResourceReader.class.getResourceAsStream(resource);
        BufferedReader bf = new BufferedReader(new InputStreamReader(is));
        StringBuffer sb = new StringBuffer();
        while ((str = bf.readLine()) != null) {
            sb.append(str + "\n");
        }
        bf.close();     
        SQLQuery query = session.createSQLQuery(sb.toString());
        query.executeUpdate();

これは、"optimization.sql" の 1 つのインデックスの例にすぎません。ファイルには約 100 のインデックスがあります

        IF EXISTS (SELECT name FROM SYS.INDEXES WHERE NAME = N'QBI_TIDX')
            DROP INDEX [QBI_TIDX] ON [ABSTRACT_TABLE]
        GO
        CREATE NONCLUSTERED INDEX [QBI_TIDX] ON [ABSTRACT_TABLE] 
        (
            [QUOTE_FK] ASC,
            [ID] ASC
        )
        INCLUDE ( [VERSION],
        [DESCRIPTION]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
        GO

エラー: "12:04:10.996 [main] WARN ohejdbc.spi.SqlExceptionHelper - SQL エラー: 102、SQLState: S0001 12:04:10.996 [main] ERROR ohejdbc.spi.SqlExceptionHelper - 'GO' 付近の構文が正しくありません。"

しかし、SQLServer Studio を使用して生成された出力 (Stringbuffer) を実行すると、この問題は発生しません。

誰かがアイデアを持っている場合は、ガイドしてください。前もって感謝します。

4

0 に答える 0