I to_number
ve to_char
kullanılan X
number format element tuhaf bir sınır çalıştırın.Oracle sayı formatında modeli maksimum uzunluğu
Sayı biçimi modelinin maksimum 63 karakter uzunluğunda olduğu anlaşılıyor ancak the docs numaralı belgede belirtilen sınırı bulamıyorum. Örneğin. datetime formatı modelinin maksimum uzunluğu belirtilir:
Tarihçe biçimindeki bir modelin toplam uzunluğu 22 karakteri aşamaz. 63
X
es ile
: benim şimdiki görev için uygun olduğu gibi sadece X
biçimi elemanı denedi
SQL> select to_number('A', rpad('X', 64, 'X')) from dual;
select to_number('A', rpad('X', 64, 'X')) from dual
*
ERROR at line 1:
ORA-01481: invalid number format model
: 64 X
es ile
SQL> select to_number('A', rpad('X', 63, 'X')) from dual;
TO_NUMBER('A',RPAD('X',63,'X'))
-------------------------------
10
.
sorular:
- bu sadece belgelere eksik bilinen bir sayı biçimi modeli sınırlaması var mı?
- 64 (ve daha uzun) basamak uzunluğundaki onaltılık bir sayıyı ondalık sayıya nasıl dönüştürebilirim?
Böyle bir dönüşümün amacı nedir? Sayı değerleri ile bazı aritmetik yapın veya sadece saklayın ve gösterin? – ThinkJet
@ThinkJet Bu, 90'ların ortasından bu yana çalışan bir üçüncü taraf eski donanım aygıtından alınan bir veri yüklemesidir. Yeni bir sürüm bu büyük onaltılık alanları tanıttı. Dönüşüm her zaman yapıldığı için yapıldı - burada kimse neden olduğunu bilmiyor. Tozlu köşeleri temizledikten sonra, uç sisteme bu özel performans göstergesini artık kullanamayacağımızı fark ettik, böylece düşebiliriz (ne rahatlama). Ayrıca, göstergenin amacının bir noktada değiştiği ve ayrı olarak kodu çözülmesi gereken birkaç bölüm içerdiği anlaşılıyor ama kimse bize söylemedi. Oh, bir bakım programcısının sevinçleri! – user272735
Tamam. Bakım sorunları konusunda size sempati duyuyorum. Bir süre sonra tekrar bu gösterge ile karşılaşırsanız, ['rawtohex'] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions131.htm) ve [' hextoraw'] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions131.htm) dönüşüm yapmak için işlevler ve ['UTL_RAW'] (http://docs.oracle.com/cd/B28359_01/appdev .111/b28419/u_raw.htm) Belirli okumaları ayıklamak ve bit düzeyinde işlemler gerçekleştirmek için paket. – ThinkJet