简体   繁体   English

如何在Sybase ASE上获取用户定义的数据类型列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM