Bir SQL ifadesi bağlamında, temel 10'u temel 10'a dönüştürmem gereken bir durum ortaya çıktı. Bu tür bir şeyi ele almak için Oracle 9 veya Oracle 10'da yerleşik bir şey yok gibi görünüyor. Google-Fu ve AskTom, görevle başa çıkmak için bir pl/sql işlevi oluşturulmasını öneriyor. Bu noktada benim için bir seçenek değil. Bu sorunu çözmemde yardımcı olabilecek bir yaklaşımla ilgili öneriler arıyorum. Ben girdi 01Z dayalı değerini 71, hesaplamak şey arıyorumTaban 36 - SQL kullanarak yalnızca Base 10 dönüşümü
WITH
Base36Values AS
(
SELECT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL
),
TestValues AS
(
SELECT '01Z' BASE36_VALUE,
71 BASE10_VALUE FROM DUAL
)
SELECT *
FROM Base36Values,
TestValues
... görsel bir forma bu koymak için. DÜZENLEME - bu geriye doğru ... verilen 01Z e çevirme 71.
Rüşvet olarak, her yararlı cevap ücretsiz olarak kabul edilir.
Teşekkürler
Evil.
Sadece merak ediyorum (her zaman veri depolamak için farklı tabanları kullanmak için bir bahane bulmak istedim); Temel 36 verileri ne için kullanılır? –
Ve bunun neden SQL'de yapılması gerektiğini merak ediyorum, bu gerçekten yaygın değil. –
Temel 36'nın avantajı, giriş sağlamak için sınırlı bir klavyeye sahip gömülü bir cihaz kullanabilmenizdir. Daha sonra, string yerine base36 olarak yorumlamak, boyutundan dolayı daha verimlidir ve dahası, varsayılan işlevleri kullanarak hesaplayabilirsiniz. – Henri