Powstała sytuacja, w której muszę wykonać konwersję z podstawy 36 na bazę 10, w kontekście instrukcji SQL. Wydaje się, że nie ma nic wbudowanego w Oracle 9 lub Oracle 10, aby rozwiązać ten problem. Moje Google-Fu i AskTom sugerują utworzenie funkcji pl/sql do obsługi tego zadania. To nie jest opcja dla mnie w tym momencie. Szukam sugestii na temat podejścia, które może mi pomóc rozwiązać ten problem.Konwersja od podstawy 36 do bazy 10 przy użyciu tylko języka SQL
Aby umieścić to w formie wizualnej ...
WITH
Base36Values AS
(
SELECT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL
),
TestValues AS
(
SELECT '01Z' BASE36_VALUE,
71 BASE10_VALUE FROM DUAL
)
SELECT *
FROM Base36Values,
TestValues
szukam czegoś do wyliczenia wartości 71, opartego na wejściu 01Z. EDYCJA - czyli w tył ... biorąc pod uwagę, że 01Z przetłumaczono na 71.
Jako łapówkę, każda przydatna odpowiedź otrzymuje bezpłatną prezentację.
Dzięki
Zło.
Jestem po prostu ciekawy (zawsze chciałem znaleźć wymówkę, aby użyć różnych baz do przechowywania danych); do czego służą dane podstawowe 36? –
I jestem ciekawy, dlaczego to musi być zrobione w SQL, to nie jest tak powszechne. –
Zaletą podstawy 36 jest to, że można używać wbudowanego urządzenia z ograniczoną klawiaturą do wprowadzania danych. Następnie interpretowanie go jako base36 zamiast jako łańcucha jest bardziej wydajne ze względu na rozmiar, a ponadto można go obliczyć przy użyciu domyślnych funkcji. – Henri