Wie erhalte ich eine Liste benutzerdefinierter Datentypen in Sybase ASE?
-
12-12-2019 - |
Frage
Ich verwende die folgende Abfrage, um die Liste der benutzerdefinierten Datentypen (UDDTs) abzurufen:
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
Unter Sybase 12.5 wurde früher eine einzelne Zeile pro UDDT zurückgegeben.Mit Sybase 15.x werden nun zwei Zeilen zurückgegeben:
owner Name datatypename
'dbo' 'auid' 'varchar'
'dbo' 'auid' 'longsysname'
Der Datentyp des UDDT ist tatsächlich varchar
.Ich bin mir nicht sicher, wo das ist longsysname
kommt von.Was ist der richtige Weg, um die Liste der UDDTs zurückzugeben, die sowohl in 12.5.x- als auch in 15.x-ASE-Datenbanken funktioniert?
Lösung
Probieren Sie diesen Code aus:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow