SQL実行の既知の不具合
この項では、すべてのプラットフォームに影響するOracle Database 23aiでのSQL実行の既知の不具合について説明します。
バグ36001671
タイムゾーン付きタイムスタンプにTIME_BUCKET関数を使用すると、TIME_BUCKET関数の計算のタイムゾーンの変換が原因で、タイムスタンプ・オーバーフローの問題が発生し、エラーORA-01877が発生する可能性があります。次に例を示します。
SQL> ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='syyyy-mm-dd hh24:mi:ss tzr tzd';
Session altered.
SQL> SELECT TIME_BUCKET(TIMESTAMP '9999-12-15 10:00:00 +02:00', 'P1M', TIMESTAMP '9999-08-01 01:30:00 +5:00', END) AS tmbkt_res;
ORA-01877: string is too long for internal buffer
no rows selected
タイムゾーン付きタイムスタンプに対するTIME_BUCKET関数の場合、タイムゾーン付きタイムスタンプはUTCに変換され、すべての計算はUTCで実行され、UTCの結果はORIGINタイムゾーンに変換されます。最後のステップで、UTCの結果をORIGINタイムゾーンに変換するときにエラーが発生します。これは、タイムゾーン付きタイムスタンプ変換の既存の問題です。同じエラーが発生する次の問合せを参照してください。
SQL> SELECT TIMESTAMP '9999-12-31 20:30:00 +00:00' AT TIME ZONE '+5:00';
ORA-01877: string is too long for internal buffer
no rows selected
回避策
なし。
親トピック: SQL実行の既知の不具合