我现在用.NET在oracle上做开发,需要读出一张表中某一列的约束类型(我是从all_constraints和all_cons_columns里面来读取),可是当某一列的约束类型是NOT NULL或者CHECK时,读出来的约束类型(constraint_type)都是字母“C”
,请问我该怎么区分是NOT NULL还是CHECK呢???
这个问题我搞了两天了,网上也没找到答案,人都要整崩溃了,望哪位高手指点一下,实在感激不尽!!!(可惜我只有这10分了。。但还是希望能得到各位指教)

解决方案 »

  1.   

    应该可以通过 SEARCH_CONDITION 来查询判断 ...SQL> select a.OWNER 用户名,
                a.CONSTRAINT_NAME 约束名称,
                a.CONSTRAINT_TYPE 约束类型,
                a.TABLE_NAME 表名,
                b.COLUMN_NAME 列名,
                a.SEARCH_CONDITION 约束内容
         from USER_CONSTRAINTS a,USER_CONS_COLUMNS b
         where a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;用户名 约束名称 约束类型 表名 列名 约束内容
    ---------- --------------- ---------- ---------- ---------- --------------------
    TEST1 SYS_C001239 P A A
    TEST1 SYS_C001240 C B B "B" IS NOT NULL
    TEST1 SYS_C001241 C B C c>0
    TEST1 SYS_C001242 P B Ahttp://www.linuxaid.com.cn/tips/7/4/749109790.shtml===================================================我想看看上面的文章就可以解决你的问题!
    Good luck to you!