كيفية الحصول على قائمة بأنواع البيانات المعرفة من قبل المستخدم على Sybase ASE؟

StackOverflow https://stackoverflow.com//questions/12695128

سؤال

أستخدم الاستعلام التالي للحصول على قائمة بأنواع البيانات المعرفة من قبل المستخدم (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

في Sybase 12.5، كان يستخدم للعودة لإرجاع صف واحد لكل UDDT.الآن مع Sybase 15.x، يتم إرجاع صفين:

owner   Name    datatypename 
'dbo'  'auid'  'varchar'
'dbo'  'auid'  'longsysname'

نوع بيانات UDDT هو في الواقع varchar.لست متأكدا من أين longsysname يأتي من.ما هي الطريقة الصحيحة لإرجاع قائمة UDDTs التي تعمل في كل من قواعد بيانات 12.5.x و15.x ASE؟

هل كانت مفيدة؟

المحلول

جرب هذا الكود:

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 مع الإسناد
لا تنتمي إلى StackOverflow
scroll top