¿Cómo obtener una lista de tipos de datos definidos por el usuario en Sybase ASE?
-
12-12-2019 - |
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?
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