When 语句怎么写,怎样得到新老结构?
解决方案 »
- oracle两数相除怎样转换成最简分数
- oracle ebs reports如何調整表身行間距
- set timing on 执行程序后的执行时间我看不懂?
- 设计数据库的时候,老大说date类型需要弄才varcha2,为什么啊?
- set echo on feedback on pagesize 999是什么意思呀?
- ORACLE数据库,关于创建触发器时遇见的问题
- oracle服务器有些慢,帮忙看看,进程有没有问题?
- 如何实现SQL SERVER和ORACLE中的表数据秒级互相交换?
- 新手编程请帮忙 select 字段 into 变量 from .. 当查询的记录没有时出错,有什么办法?
- 请问ASP通过ADO调用ORACLE数据库时不能用ADDNEW和UPDATE来新增数据是什么问题?
- -----------------集群部署的超简单问题----58分(全身家当了)
- 如何使用存储过程像MSSQL的存储过程 能够返回一个结果集
像DML中的:old ,:new
AFTER CREATE OR ALTER OR DROP OR TRUNCATE ON DATABASE
DECLARE
oper i_ddl_log.operation%TYPE;
txt_value varchar2(1800);
num_count number;
CURSOR C1 IS
SELECT ora_sysevent T_EVT, ora_dict_obj_owner T_OWNER,
ora_dict_obj_name T_NAME, upper(sql_text) T_TXT, USER T_USER, SYSDATE T_DATE
FROM gv$open_cursor;
BEGIN
SELECT ora_sysevent
INTO oper
FROM dual;
FOR LP IN C1 LOOP
select count(*) into num_count from I_TBLS WHERE TBL_NAME=lp.t_name AND FLG_CHECK='1';
IF NUM_COUNT>0 THEN
IF LP.T_TXT LIKE LP.T_EVT || ' TABLE %' THEN
IF OPER IN ('CREATE','DROP','TRUNCATE','ALTER') THEN
INSERT INTO I_DDL_LOG (
OPERATION ,
OBJ_OWNER ,
OBJECT_NAME ,
SQL_TEXT ,
ATTEMPT_BY ,
ATTEMPT_DT ,
FLG_EXEC
) values(
LP.T_EVT,
LP.T_OWNER,
LP.T_NAME,
LP.T_TXT,
LP.T_USER,
LP.T_DATE,
'0'
);
select lp.t_txt into txt_value from dual;
txt_value := replace(txt_value,lp.t_name,'I_' || lp.t_name);
execute immediate txt_value;
END IF;
END IF;
END IF;
END LOOP;/* EXCEPTION
WHEN OTHERS THEN
raise_application_error (num => -20000,
msg => 'TRG_INTERFACE_BASE 未知错误,需人为干预.');*/
END;