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 я так понимаю тоже пойдет, просто получится очень многабуков.
Дизайнер базы не очень хотел, чтобы кто-то строил запросы к данным без его участия, так что ничего ломать ему не надо )