Как получить список пользовательских типов данных на Sybase ASE?

StackOverflow https://stackoverflow.com//questions/12695128

Вопрос

Я использую следующий запрос, чтобы получить список пользовательских типов данных (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  
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top