Pregunta

Utilizo la siguiente consulta para obtener la lista de tipos de datos definidos por el usuario (UDDT):

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

En Sybase 12.5, solía devolver una sola fila por UDDT.Ahora con Sybase 15.x, devuelve 2 filas:

owner   Name    datatypename 
'dbo'  'auid'  'varchar'
'dbo'  'auid'  'longsysname'

El tipo de datos del UDDT es en realidad varchar.No estoy seguro de dónde longsysname viene de.¿Cuál es la forma correcta de devolver la lista de UDDT que funciona en las bases de datos ASE 12.5.x y 15.x?

¿Fue útil?

Solución

Pruebe este código:

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  
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top