十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、ORACLE数据库中的外键约束名都在表user_constraints中可以查到。其中constraint_type='R'表示是外键约束。
呼兰ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
2、启用外键约束的命令为:alter
table
table_name
enable
constraint
constraint_name
3、禁用外键约束的命令为:alter
table
table_name
disable
constraint
constraint_name
4、然后再用SQL查出数据库中所以外键的约束名:
select
'alter
table
'||table_name||'
enable
constraint
'||constraint_name||';'
from
user_constraints
where
constraint_type='R'
select
'alter
table
'||table_name||'
disable
constraint
'||constraint_name||';'
from
user_constraints
where
constraint_type='R'
禁用oracle 的 XDB服务的方法很简单,去掉相应的数据库的初始化参数即可: 编辑$ORACLE_HOME/dbs/initSID.ora文件,去除如下行: dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)'重启数据库 shutdown immediate; create spfile from pfile; startup;修改XDB服务端口: XDB的http服务就占用8080端口,刚好和JBoss、Tomcat等默认端口冲突,Oracle XDB的端口设置不在配置文件中,而是在数据库里。如下修改XDB的http和ftp服务端口: 使用sys登录sqlplus,利用dbms_xdb修改端口设置 SQL -- Change the HTTP /WEBDAV port from 8080 to 8081 SQL call dbms_xdb.cfg_update(updateXML( 2 dbms_xdb.cfg_get() 3 , '/xdbconfig/sysconfig/protocolconfig /httpconfig/http-port/text()' 4 , 8081)) 5 / Call completed. SQL -- Change the FTP port from 2100 to 2111 SQL call dbms_xdb.cfg_update(updateXML( 2 dbms_xdb.cfg_get() 3 , '/xdbconfig/sysconfig/protocolconfig /ftpconfig/ftp-port/text()' 4 , 2111)) 5 / Call completed. SQL COMMIT; Commit complete. SQL EXEC dbms_xdb.cfg_refresh; PL/SQL procedure successfully completed.(责任编辑:卢兆林)
一、Oracle数据库:禁用约束基本语法:alter table 数据库表名 disable constraint 约束名 假设现在需要关闭pub_organ的外键约束:1、 首先查询pub_organ存在哪些外键约束,此时需要用到oracle的字典表user_constraints。select * from user_constraints where table_name='PUB_ORGAN'; 上图就是查询结果,其中各字段含义如下:OWNER: 表的所有者CONSTRAINT_NAME: 约束名称CONSTRAINT_TYPE: 约束类型(R代表外键,P代表主键,C代表check约束)TABLE_NAME: 表名称SEARCH_CONDITION: check约束的具体信息STATUS: ENABLED表示当前约束是启用的,DISABLED表示当前约束未启用。2、 查询出表存在哪些约束后,即可以通过alter语句启用或禁用指定的约束了。如禁用pub_organ表的外键PUBORGAN_FK1,则可以使用如下命令实现:alter table PUB_ORGAN disable constraint PUBORGAN_FK1;执行后,再次查询字典表user_constraints,如下: 此时往数据库表pub_organ中插入数据时就不再受外键约束的影响了。 启用约束基本语法:alter table 数据库表名 enable constraint 约束名 如现在需要重新启用pub_organ的外键约束,可以使用如下命令:alter table PUB_ORGAN enable constraint PUBORGAN_FK1;二、DB2数据库:禁用约束基本语法:ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 NOT ENFORCED 启用约束基本语法:ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 ENFORCED 相关字典表:SYSIBM.SYSTABCONST如:select * from SYSIBM.SYSTABCONST where tbname='PUB_ORGAN'; 各字段含义如下:NAME: 约束名称DEFINER: 定义者CONSTRAINTTYP: 约束类型(P代表主键,F代表外键)TBNAME: 表名称ENFORCED: 是否启用(Y代表启用,N代表未启用)三、封装成java接口、批量执行在实际工作中,经常会将若干个表,或者所有数据库表的外键一起禁用,此时需要批量执行相关命令,笔者根据工作实际,使用java封装了相关接口,以方便使用。对外暴露接口如下:/* * 启用当前用户指定tableName的所有外键约束 * 入参使用可变参数(jdk5新特性) * 调用方式: * 1、enableFK("pub_organ") * 2、enableFK("pub_organ","pub_stru") * 3、enableFK(new String[]{"pub_organ","pub_stru"}) */ publicstaticvoidenableFK(String...tableNames){ disableORenbaleFK(true,tableNames); }/* * 禁用当前用户指定tableName的所有外键约束 */ publicstaticvoiddisableFK(String...tableNames){ disableORenbaleFK(false,tableNames); }/* * 启用当前用户所有表的外键约束 */ publicstaticvoid enableAllFK(){ disableORenableAllConstraint(true); } /* * 禁用当前用户所有表的外键约束 */ publicstaticvoid disableAllFK(){ disableORenableAllConstraint(false); } 其中核心处理代码如下: if(tableNames==null||tableNames.length==0){ thrownew RuntimeException("入参tableNames不能为空!"); } //查询指定表的外键约束 String sql = null; String dbType = getDBType(); if(dbType.contains("ORACLE")){ sql = "select 'alter table ' || table_name || ' disable constraint ' || constraint_name from user_constraints where constraint_type='R' and TABLE_NAME in("; if(isEnable){ sql = sql.replace("disable", "enable"); } }elseif(dbType.contains("DB2")){ sql = "select 'ALTER TABLE ' || TBNAME || ' ALTER FOREIGN KEY ' || NAME ||' NOT ENFORCED ' FROM SYSIBM.SYSTABCONST WHERE CONSTRAINTYP='F' and TBNAME in("; if(isEnable){ sql = sql.replace("NOT ENFORCED", "ENFORCED"); } }else{ thrownew RuntimeException("数据库类型无效(仅支持Oracle和DB2),dbType="+dbType); } StringBuffer generateSQL = new StringBuffer(sql); for(int i=0;i
在服务中直接停止即可。
1、以windows10为例,右键“此电脑”,选择“管理”。
2、然后选择“服务和应用程序”——“服务”。
3、找到oracle的服务,一般名称为oracleservice+实例名。
4 、右键,选择停止,等待执行完毕即可。