sql >> データベース >  >> RDS >> Oracle

Springjdbcoracleを使用したセッションタイムゾーンの設定

    正しい方法は、DelegatingDataSourceを使用することです。 、OracleConnectionを取得します 元のデータソースからオブジェクトを取得し、OracleConnection.setSessionTimeZone()を呼び出します 適切なパラメータを使用します。

    C3P0コードは次のようになります:

    private Object[] timeZoneArgs = new Object[] { "Europe/Berlin" };
    
    @Override
    public Connection getConnection() throws SQLException {
        Connection conn = super.getConnection();
        try {
            final Method setSessionTimeZoneMethod = OracleConnection.class.getMethod("setSessionTimeZone", String.class);
            final C3P0ProxyConnection castCon = (C3P0ProxyConnection) conn;
            castCon.rawConnectionOperation(setSessionTimeZoneMethod, C3P0ProxyConnection.RAW_CONNECTION, timeZoneArgs);
            return conn;
        } catch (Exception e) {
            log.error("setSessionTimeZone failed " + e.getMessage());
            return conn;
        }
    }
    


    1. varchar2で宣言されている有効な日付を確認してください

    2. OFFSET/FETCHを使用したSQLServerでのページネーション

    3. すでに閉じられているオブジェクトsqlitedatabaseを再度開こうとします

    4. SQLServerリンクサーバーのクエリ例