Как получить список пользовательских типов данных на Sybase ASE?
-
12-12-2019 - |
Вопрос
Я использую следующий запрос, чтобы получить список пользовательских типов данных (UDDTS):
SELECT USER_NAME(S.uid) as owner, S.name as Name, T.name as datatypename,
OBJECT_NAME(S.domain), OBJECT_NAME(S.tdefault)
FROM systypes S,systypes T
WHERE S.type=T.type AND T.usertype<100 AND T.usertype NOT IN(18,24,25,80) AND S.usertype>100
ORDER BY 1, 2
.
на sybase 12.5, он используется для возврата для возврата одной строки на UDDT.Теперь с помощью Sybase 15.x он возвращает 2 строк:
owner Name datatypename
'dbo' 'auid' 'varchar'
'dbo' 'auid' 'longsysname'
.
Тип данных UDDT на самом деле генеракодицетагкод.Я не уверен, откуда идет генеракодицетагкод. Какой правильный способ вернуть список UDDTS, которые работает как в базах данных 12,5.x, так и 15.x ASE?
Решение
попробуйте этот код:
select s1.name,
(select name
from systypes s2
where s2.usertype=(
select min( s3.usertype)
from systypes s3
where s3.hierarchy=s1.hierarchy)
) base_type, USER_NAME(s1.uid) as owner
from systypes s1
WHERE s1.usertype>100
. Не связан с StackOverflow