📄 oracle常见问题常用技巧-26.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#000000" text="#FFFFFF">
<font color="#009900">约束管理脚本 </font>
<p>该脚本可用来管理当前登录用户下的所有外键和触发器的打开和关闭,此处没有处理主键和唯一约束条件,该脚本稍加修改就可以处理主键和唯一约束条件,但这里建议最好不要在随意停止主键或唯一约束条件后,进行数据维护。</p>
<p>脚本运行方法如下(SQL/PLUS): </p>
<p>SQL> SET SERVEROUTPUT ON;<br>
SQL> ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';<br>
SQL> EXEC P_ALTERCONS(as_alter);</p>
<p>其中,参数as_alter只能是“ENABLE”或者“DISABLE”,否则程序提示错误。当参数为“ENABLE”时,表示将当前模式下所有的外键和触发器打开,相反“DISABLE”就是将当前模式下所有的外键和触发器关闭。
</p>
<p>附存储过程脚本:</p>
<p>CREATE OR REPLACE PROCEDURE P_ALTERCONS(<br>
AS_ALTER VARCHAR2)<br>
AS<br>
v_CursorID INTEGER;<br>
v_StrCon VARCHAR2(300);<br>
v_StrTri VARCHAR2(300);<br>
v_FkNum NUMBER :=0;<br>
v_TriNum NUMBER :=0;<br>
v_sqlcode NUMBER;<br>
v_sqlerrm VARCHAR2(600);<br>
CURSOR C_CON IS<br>
SELECT * FROM USER_CONSTRAINTS<br>
WHERE CONSTRAINT_TYPE='R';<br>
R_CON C_CON%ROWTYPE;<br>
CURSOR c_trigger IS<br>
SELECT TRIGGER_NAME,STATUS FROM user_triggers;<br>
notfound BOOLEAN;<br>
BEGIN<br>
DBMS_OUTPUT.PUT_LINE('BEGIN TIME: '||to_char(sysdate));</p>
<p>判断输入参数是否为DISABLE或者是ENABLE,如果是的话,就继续处理,否则退出过程,给出提示<br>
IF (UPPER(AS_ALTER) = 'DISABLE' OR UPPER(AS_ALTER) = 'ENABLE') THEN<br>
OPEN C_CON;</p>
<p> <br>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -