[英]How to get a list of user defined data types on Sybase ASE?
I use the following query to get the list of user defined data types (UDDTs): 我使用以下查询来获取用户定义的数据类型(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
On Sybase 12.5, it used to return to return a single row per UDDT. 在Sybase 12.5上,它用于返回每个UDDT返回一行。 Now with Sybase 15.x, it returns 2 rows: 现在使用Sybase 15.x,它返回2行:
owner Name datatypename
'dbo' 'auid' 'varchar'
'dbo' 'auid' 'longsysname'
The datatype of the UDDT is actually varchar
. UDDT的数据类型实际上是varchar
。 I am not sure where the longsysname
is coming from. 我不确定longsysname
来自哪里。 What is the correct way to return the list of UDDTs that works in both 12.5.x and 15.x ASE databases? 返回在12.5.x和15.x ASE数据库中都有效的UDDT列表的正确方法是什么?
Try this code: 试试这段代码:
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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.