Come ottenere un elenco di tipi di dati definiti dall'utente su Sybase ASE?
-
12-12-2019 - |
Domanda
Io uso la seguente query per ottenere l'elenco dei tipi di dati definiti dall'utente (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
.
su Sybase 12.5, è stato utilizzato per tornare a restituire una singola riga per UDDT.Ora con Sybase 15.x, restituisce 2 righe:
owner Name datatypename
'dbo' 'auid' 'varchar'
'dbo' 'auid' 'longsysname'
.
Il tipo di dati dell'UDDT è in realtà varchar
.Non sono sicuro di dove provengano il longsysname
.
Qual è il modo corretto per restituire l'elenco degli uddts che funziona in entrambi i database 12.5.x e 15.x ASE?
Soluzione
Prova questo codice:
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
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow