网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.用一个实例讲解数据类型不一致引.
.[范例] forms 中层次树的使用方法.
.Oracle10g Release 2手工建立数据.
.在Linux下装配Oracle.
.ORACLE入门之数据库安全策略.
.OracleSupport全球解答的最hot的.
.Oracle 9i数据库中实体化视图简介.
.Linux 集群系统大比拼.
.讲解Oracle里抽取随机数的多种方.
.Oracle Database 10g:自动共享内.
.安装问题.
.oracle 使用杂记1.
.通过SELECT语句实现两个记录集的.
.数据库人员手册之Oracle初始化参.
.Linux着作权须知.
.甲骨文扩军印度.
.PL/SQL学习笔记(七).
.监控当前并行查询运行状况脚本.
.通过实例来教你如何配置Oracle监.
.解決 Export error ORA-31600.

如何查看用户表上的约束内容?

发表日期:2008-2-9



  系统环境: 1、操作系统:windows 2000 Server,机器内存128M
  2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
  3、安装路径:C:\ORACLE
  
   实现方法:
   
  SQL> conn system/manager
  SQL> grant connect,resource to test1 identified by pass1;
  SQL> conn test1/pass1
  SQL> create table a(a number primary key);
  SQL> create table b(a number primary key,b number not null,c number check(c>0));
  
  SQL> desc USER_CONSTRAINTS
   名称 空? 类型
   ----------------------------------------- -------- --------------
   OWNER NOT NULL VARCHAR2(30) --用户名
   CONSTRAINT_NAME NOT NULL VARCHAR2(30) --约束名
   CONSTRAINT_TYPE VARCHAR2(1) --约束类型
   TABLE_NAME NOT NULL VARCHAR2(30) --表名
   SEARCH_CONDITION LONG --
   R_OWNER VARCHAR2(30) --
   R_CONSTRAINT_NAME VARCHAR2(30) --
   DELETE_RULE VARCHAR2(9) --
   STATUS VARCHAR2(8) --状态
   DEFERRABLE VARCHAR2(14) --
   DEFERRED VARCHAR2(9) --
   VALIDATED VARCHAR2(13) --
   GENERATED VARCHAR2(14) --
   BAD VARCHAR2(3) --
   RELY VARCHAR2(4) --
   LAST_CHANGE DATE --最后更改时间
  
  SQL> desc USER_CONS_COLUMNS
   名称 空? 类型
   ----------------------------------------- -------- ----------------
   OWNER NOT NULL VARCHAR2(30) --用户名
   CONSTRAINT_NAME NOT NULL VARCHAR2(30) --约束名
   TABLE_NAME NOT NULL VARCHAR2(30) --约束类型
   COLUMN_NAME VARCHAR2(4000) --列名
   POSITION NUMBER --
  
  SQL> col 用户名 format a10
  SQL> col 约束名称 format a15
  SQL> col 约束类型 format a10
  SQL> col 表名 format a10
  SQL> col 列名 format a10
  SQL> col 约束内容 format a20
  
  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 A
  
  
  这样,假如发出以下一样的语句,会出现约束错误,可以根据显示的约束号来查询是违反了哪一列上的约束条件
  
  SQL> insert into b values(1,1,-1);
  insert into b values(1,1,-1)
  *
  ERROR 位于第 1 行:
  ORA-02290: 违反检查约束条件 (TEST1.SYS_C001241)
  
  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='SYS_C001241' and a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;
  
  用户名 约束名称 约束类型 表名 列名 约束内容
  ---------- --------------- ---------- ---------- ---------- --------------------
  TEST1 SYS_C001241 C B C c>0
上一篇:怎样查看SGA值? 人气:728
下一篇:Linux 平台上之 Multipath Routing 应用 人气:657
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐