oracle生成多表触发器sql

--将所有HY开头的表都生成一个更新触发器的脚本(‘/‘是为了连续创建多个触发器而不报错)select
   ‘CREATE OR REPLACE
   TRIGGER ‘||table_name||‘
   BEFORE UPDATE on ‘||table_name||‘
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
     DECLARE
     BEGIN
        IF updating  THEN
           :NEW.C_UPDATE_TIME:= SYSDATE;
           IF :NEW.C_DATA_STATUS=‘‘4‘‘ THEN
             :NEW.C_DATA_STATUS:=‘‘4‘‘;
           ELSE
            :NEW.C_DATA_STATUS:=‘‘2‘‘;
           END IF;
        END IF;
     END;
    /
    alter trigger ‘||table_name||‘ enable;‘ as triggerSql
from tabs where table_name like ‘HY%‘ order by table_name;--:NEW.C_DATA_STATUS:=‘‘4‘‘中的:=是赋值,‘‘是转义单引号
--查询触发器
select trigger_name from all_triggers where trigger_name like ‘HY%‘;
时间: 2024-10-05 04:41:22

oracle生成多表触发器sql的相关文章

传入数据集,生成对应表的sql脚本

delphi的,传入数据集,生成他的sql脚本. //根据数据源结构创建ACCESS表1:生成脚本 Function CreateAccessTable(dSource:TDataSet; sTableName:String; sIgnoreFields:Array of String):String; Var SQL:TStringList; oField:TField; i, n:Integer; sF:String; Begin Result:=''; SQL:=TStringList.C

如何通过sql语句快速生成 删除表的sql

select 'drop table '+name tablename from sysobjects where xtype='U' and name like 'ta_bsk%' 备注: 从系统表(sysobjects)中查询类型是用户表(xtype='U')表名以ta_bsk开头的表名(name like '%ta_bsk%'),拼接上'drop table'就生成了我想要的sql语句了.哈哈

Oracle数据库建表并用SQL编程分等级

--创建学生表create table XS_543 ( XH char(6) not null , XM varchar2(20) not null, ZYM varchar2(10), XB char(4) default '男', CSSJ date, ZXF number(2), BZ varchar2(100), constraint pk_xh primary key(xh)); --创建课程表 create table KC_543( KCH char(3) not null ,

Oracle生成指定表的列名,并前后添加select from

表的列名比较多的时候,手工一个个的写列名比较麻烦,这个函数可以让人偷偷懒 create or replace function f_GetCols(p_TableName in varchar2/*获取表中所有列名 前后添加select from*/)  RETURN varchar2isResult  varchar2(2000);v_cnts number;v_strTabName varchar2(200);BEGIN v_strTabName:=upper(p_tablename); s

SQL_使用DBMS_METADATA.GET_DDL生成建表语句

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43988377 今天在群里学来一着,通过DBMS_METADATA.GET_DDL来生成建表或视图的sql语句. (1).生成创建表的sql语句 SQL> set long 20000; SQL> SELECT DBMS_METADATA.GET_DDL('

Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)

触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的表进行的insert .update.delete操作或对视图进行类似的操作. 触发器是很多关系数据库系统都提供的一项技术.在Oracle系统里,触发器类似过程和函数,都有声明,运行和异常 处理过程的PL/SQL块. 触发器的组成: 触发事件:在何种情况下触发:比如:INSERT , UPDATE

存储过程给指定表绑定触发器sql里拼json作存储日志

项目给出了一个新的需求,利用触发器生成日志表,监听对数据库中关键表的增删改操作.将操作的数据拼成json格式作为一个clob存入oracle. 1 create or replace procedure Logging_Messages(tableName varchar2 default '%') is 2 cursor c_cl IS 3 SELECT column_name tcl 4 FROM user_tab_columns 5 WHERE table_name = upper(tab

Oracle EBS-SQL (SYS-10):锁定表查询.sql

/*死锁查询-1*/ SELECT o.object_name, l.session_id,l.process, l.locked_mode FROM v$locked_object l , dba_objects o WHERE o.object_id=l.object_id ------------------------------------------------ /*死锁查询-2*/ select GL.SESSION_ID,         do.object_name,     

Oracle EBS-SQL (SYS-7):表单个性化查询.sql

animation-timing-function animation-timing-function 规定动画的速度曲线.速度曲线定义动画从一套 CSS 样式变为另一套所用的时间.在平常的取值中,主要有以下几个: 值 描述 linear 动画从头到尾的速度是相同的. ease 默认.动画以低速开始,然后加快,在结束前变慢. ease-in 动画以低速开始. ease-out 动画以低速结束. ease-in-out 动画以低速开始和结束. cubic-bezier(n,n,n,n) 在 cub