3

TZ_OFFSETを実行した後の連結は登録されていないようです。 例:中TZ_OFFSET()後にOracleが連結されない

SELECT '[' || TZ_OFFSET('Europe/Amsterdam') || ']' FROM DUAL 

結果:

[+01:00 

なぜTZ_OFFSET(後の連結はない)が場所を取りますか?

+0

私のために働きます - http://rextester.com/DMQSU85214 – GurV

+0

それは奇妙です、それは私のためではありません - https://snag.gy/wigrFJ.jpg – Koen

+0

それは正しく動作しました - http:// rextester .com/ESB48246あなたのケースで何が問題になっているのか分かりません。 – GurV

答えて

3

これはバグ(私は見ることができません、私は見ることができません、また9861391、私も見ることができないベースのバグ17291158を参照してください)、クライアントの動作と組み合わせた。 SQL * PlusまたはSQL Developerでは、これは正常に見えます。 -

select '[' || tz_offset('Europe/Amsterdam') || ']' from dual; 

'['||TZ_O 
--------- 
[+01:00 ] 

余分なスペースがあるようです。

select dump('[' || tz_offset('Europe/Amsterdam') || ']') from dual; 

DUMP('['||TZ_OFFSET('EUROPE/AMSTERDAM')||']') 
--------------------------------------------- 
Typ=1 Len=9: 91,43,48,49,58,48,48,0,93 

お知らせ0バイト:

'['||TZ_O 
--------- 
[+01:00 

が生成された値をダンプ問題を示しています - それはそのように表示されている - あまりにも閉じ括弧を失い、SQL Developerのワークシートからというコピーして貼り付けているがこれはヌル文字であり、混乱の原因となります。オフセット形式が固定されているとおり

、あなたは簡単なsubstr()経由でこれを避けることができます。

select '[' || substr(tz_offset('Europe/Amsterdam'), 1, 6) || ']' from dual; 

'['||SUB 
-------- 
[+01:00] 

select dump('[' || substr(tz_offset('Europe/Amsterdam'), 1, 6) || ']') from dual; 

DUMP('['||SUBSTR(TZ_OFFSET('EUROPE/AMSTERDAM'),1,6)||']') 
--------------------------------------------------------- 
Typ=1 Len=8: 91,43,48,49,58,48,48,93 

...またはコメントで言及replace()またはtrim()オプションを。または不正な文字を削除するその他のもの。偶数:

MoSではバグが表示されないため、修正された時点(またはその場合)はわかりません。 11.2.0.0に存在するように見えますが、11.2.0.4のものが表示されます.12cで修正される可能性があります。私は12.1.0.2でそれを見ていないよ。

+1

'replace(problem_string、chr(0)、null)' - 長さに依存しない方法 –

+0

この場合、長さは常に6(またはヌルバイトを含む7)ですが... –

+1

'TRIM(TRAILING CHR )FROM TZ_OFFSET( 'Europe/Amsterdam')) ' –

関連する問題