CREATE OR REPLACE FUNCTION GETREFERENCESCOLUMN

(

i_table_name varchar2 , --表名

i_constraint_name varchar2 --列名

)

RETURN nvarchar2

AS

v_table_name nvarchar2(50);

BEGIN

v_table_name:='';

for cur in (

select   distinct

b.column_name

from

(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name

from user_constraints a, user_cons_columns b

WHERE a.constraint_type='R'

and a.constraint_name=b.constraint_name

order by b.position

) a,

(select distinct a.r_constraint_name,b.table_name,b.column_name,b.position

from user_constraints a, user_cons_columns b

WHERE   a.constraint_type='R'

and

a.r_constraint_name=b.constraint_name

order by b.position)

b

where a.r_constraint_name=b.r_constraint_name and b.table_name = i_table_name

and b.r_constraint_name = i_constraint_name

) loop

v_table_name := v_table_name||cur.column_name ||',';

end loop;

v_table_name := trim(',' from v_table_name);

RETURN v_table_name;

END;

/***----------------------------外键表-------------------***/

CREATE OR REPLACE FUNCTION GETFOREIGNCOLUMN

(

i_table_name varchar2 , --表名

i_constraint_name varchar2 --列名

)

RETURN nvarchar2

AS

v_table_name nvarchar2(50);

BEGIN

v_table_name:='';

for cur in (

select   distinct

a.column_name

from

(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name

from user_constraints a, user_cons_columns b

WHERE a.constraint_type='R'

and a.constraint_name=b.constraint_name

order by b.position

) a,

(select distinct a.r_constraint_name,b.table_name,b.column_name,b.position

from user_constraints a, user_cons_columns b

WHERE   a.constraint_type='R'

and

a.r_constraint_name=b.constraint_name

order by b.position)

b

where a.r_constraint_name=b.r_constraint_name and a.table_name = i_table_name

and a.constraint_name = i_constraint_name

) loop

v_table_name := v_table_name||cur.column_name ||',';

end loop;

v_table_name := trim(',' from v_table_name);

RETURN v_table_name;

END;

/***-------------------导出外键------------------***/

select

'ALTER TABLE  ' ||

a.table_name

|| '  ADD  CONSTRAINT      ' ||

a.constraint_name

|| ' FOREIGN KEY   ('

|| a.column_name||')'

||'

REFERENCES   ' ||b.table_name || ';'

from

(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name

from user_constraints a, user_cons_columns b

WHERE a.constraint_type='R'

and a.constraint_name=b.constraint_name

) a,

(select distinct a.r_constraint_name,b.table_name,b.column_name

from user_constraints a, user_cons_columns b

WHERE   a.constraint_type='R'

and

a.r_constraint_name=b.constraint_name)

b

where a.r_constraint_name=b.r_constraint_name

order by a.table_name  ;

oracle两个约束,Oracle中的约束介绍(2)相关推荐

  1. mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰

    一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER ...

  2. mysql 语句怎样修饰约束_MySQL中的约束,添加约束,删除约束,以及一些其他修饰讲解...

    (1)创建数据库 CREATE DATABASES 数据库名; (2)选择数据库 USE 数据库名; (3)删除数据库 DROP DATAVBASE 数据库名; (4)创建表 CREATE TABLE ...

  3. Oracle数据字典中查看约束信息/约束相关笔记

    1.我们创建的对象可以从"USER_"开通的视图中查看.如果在模式中创建了10张表,那么从USER_TABLES中查询将返回10行,每一行是关于一张表的特性信息 USER_TABL ...

  4. 转载:oracle中的约束

    数据完整性 数据库不仅仅是存储数据,它也必须保证所保存的数据的正确性.如果数据不正确或不一致,那么该数据的完整性可能会遭到破坏,从而给数据库本身的可靠性带来意想不到的问题. 为了维护数据库中的数据完成 ...

  5. Oracle视图添加约束,Oracle的约束视图

    在Oracle中插入数据时,可能由于不符合约束而无法插入成功. 将报类似于如下的错误信息: SQL Error: ORA-02291: 违反完整约束条件 (TEST.FK_KB_TEST_ID) - ...

  6. oracle 怎么创建约束,Oracle创建约束

    约束的类型: oracle数据库支持的约束类型包括: 1.unique 2.not null 3.primary key 4.foreignkey 5.check 约束都有名称.如果没有显示地给它们命 ...

  7. oracle 约束 Oracle 10g学习系列(5)

    这篇文章来自网络,写的挺好,转过来了.  维护数据的完整性 概述:数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则.在Oracle中,数据完整性可以使用约束.触发器.应用程序(过程.函数)三种方 ...

  8. linux音源管理 二维表,Oracle【二维表管理:约束】

    1.简单的表创建和字段类型 最简单的方式去创建表(没有添加主键之类的约束条件) [Oracle的字段类型] number:数值类型 --整数类型:number(a) 总长度a --小数类型:numbe ...

  9. Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写

    Oracle数据库:约束条件:主键约束.唯一约束.检查约束.非空约束.外键约束.默认值填写 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开 ...

  10. Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

最新文章

  1. 第二讲,我们来谈谈:“什么是二进制”
  2. DNS隧道工具汇总——补充,还有IP over DNS的工具NSTX、Iodine、DNSCat
  3. 查询表结构用于导出excel
  4. 学习笔记--2014年7月7日
  5. java 进制转换算法_算法笔记_033:十六进制转八进制(Java)
  6. java mysql 常见框架_Java岗面试重点:Java+JVM+MySQL+框架+算法,金九银十涨薪全靠它...
  7. Android Studio3.x填坑路
  8. 使用 Fiddler 调试 心知天气,stm32 esp8266获取天气api
  9. 用usecase获取需求的方法是否有缺陷,还有什么地方需要改进
  10. 中国首个5G全覆盖产研一体化创新园启动
  11. strak组件(5):为列表定制预留钩子方法
  12. 百度地图只显示行政区
  13. 关于OpenGL游戏全屏模式的设置
  14. 为什么docker的端口映射需要开启ip转发功能?
  15. 百度快照劫持是什么意思?如何解决百度快照被劫持、百度劫持
  16. Android音乐播放器
  17. 勋章菊的养殖方法和注意事项
  18. 关于无损APE,FLAC转AAC的小技巧
  19. python2升级python3语法错误总结
  20. 市场调研-全球与中国企业数据丢失预防(EDLP)产品市场现状及未来发展趋势

热门文章

  1. MySQL-5.7.22-winx64安装
  2. python标准库之logging
  3. 软件公司怎么定价它们的项目_如何为副项目定价
  4. python lxml使用_使用lxml和Python进行Web抓取的简介
  5. 一篇文章解决Python函数式编程与闭包的问题
  6. 插入排序 - python实现
  7. C# 进制转换(二进制、十六进制、十进制互转) .
  8. 在EditPlus中配置PHP调试
  9. jQuery学习笔记之jQuery的DOM操作
  10. 漫步数学分析九——级数