перевод 16->10чную, запрос к переменным именам таблиц в зависимости от значения в поле

Mozart_mcs
Дата: 30.11.2012 22:24:41
Есть задача написать процедуру, при этом есть несколько вопросов, которые нужно решить:
Есть исходное значение, например XXyyZZ или XX или XXyy Т.е. возможны 3 варианта, которое мы получаем из запроса.

XX,YY,ZZ - числа в 16-ричном формате, т.е. для начала необходимо

1) Порезать строку "XXyyZZ" на XX , YY , ZZ

Затем, нужно полученные числа перевести в 10ричную систему, т.е.

2) K= 10(XX) L= 10(YY) M= 10(ZZ)

Затем, в зависимости от каждого из значений, происходит выборка из разных таблиц, например
Если К = a,b то требуемое значение возвращается из запроса
SELECT DESCRIPTION FROM TABLE1 WHERE FIELD1=L
Если K= c,d то запрос нужно делать к другой таблице:
SELECT DESCRIPTION FROM TABLE2 WHERE FIELD2=L

Тоже самое происходит и с L и M, там по аналогии, только запрос может затрагивать TABLE3, а в зависимости от значений и к TABLE1 и к TABLE2 может быть запрос. (это нюансы).

3) Т.е. 3 вопрос и самый сложный пока, это как в зависимости от одного параметра делать запросы в разные таблицы, при том, что L может встречаться как в TABLE2, так и в TABLE3. Т.е. уникальности этих параметров нету в разных таблицах.

4) Ну и остался вопрос: как обработать мой запрос так, чтобы он нормально обрабатывал и "XX" и "XXYY" и "XXYYZZ". Т.е. когда мне по итогу нужно делать вообще разное количество запросов.


Итог всего этого - информационная строка, содержащая в себе склеенные полученные из запросов поля типа описаний.
Надеюсь, более-менее грамотно и понятно сформулировал. Точных решений не требуется, просто прошу навести на мысль для лаконичного решения вопросов, спасибо!
Dimitry Sibiryakov
Дата: 30.11.2012 22:38:19

Mozart_mcs
Точных решений не требуется, просто прошу навести на мысль для
лаконичного решения вопросов

RTFM SQL Reference на предмет SUBSTR, TO_NUMBER, потом PL/SQL Reference на предмет IF.

А потом надо взять бейсбольную биту и сломать дизайнеру этой идиотской базы пару конечностей.

Posted via ActualForum NNTP Server 1.5

Mozart_mcs
Дата: 30.11.2012 22:44:34
CASE WHEN THEN я так понимаю тоже пойдет, просто получится очень многабуков.

Дизайнер базы не очень хотел, чтобы кто-то строил запросы к данным без его участия, так что ничего ломать ему не надо )
Dimitry Sibiryakov
Дата: 30.11.2012 22:48:34

Mozart_mcs
ничего ломать ему не надо

За нарушение первой НФ - надо. Одну конечность.
За разнесение экземпляров одной сущности по разным таблицам - вторую.

Posted via ActualForum NNTP Server 1.5