当用到自增序列,需要用到触发器的时候,当我连续执行创建多个触发器时,总是报编译通过,但存在警告或错误。

---.应用信息
drop table app_info cascade constraints;
create table APP_INFO
(
id NUMBER() not null,
appid VARCHAR2() default NULL,
appkey VARCHAR2() default NULL,
md5_key VARCHAR2() default NULL,
aes_key VARCHAR2() default NULL,
permission VARCHAR2() default NULL,
email VARCHAR2() default NULL,
password VARCHAR2() default NULL,
ras_public_key VARCHAR2() default NULL,
constraint APP_INFO primary key (id)
); drop sequence app_info_id;
create sequence app_info_id
increment by
start with
nomaxvalue
nominvalue
nocache; CREATE OR REPLACE TRIGGER addAppInfo BEFORE INSERT ON App_INFO FOR EACH ROW
BEGIN
SELECT app_info_id.nextval INTO :new.id FROM dual;
END; ---.unit信息
drop table unit_info cascade constraints;
create table UNIT_INFO
(
UNIT_ID NUMBER() not null,
USERID VARCHAR2() default NULL,
UNIT_NAME VARCHAR2() default NULL,
UNIT_LINKMAN VARCHAR2() default NULL,
ORGANIZATION_CODE VARCHAR2() default NULL,
constraint UNIT_INFO primary key (UNIT_ID)
); drop sequence unit_info_id;
create sequence unit_info_id
increment by
start with
nomaxvalue
nominvalue
nocache; CREATE OR REPLACE TRIGGER addUnitInfo BEFORE INSERT ON UNIT_INFO FOR EACH ROW
BEGIN
SELECT unit_info_id.nextval INTO :new.unit_id FROM dual;
END;

错误截图如下:

这种创建是失败的,因为触发器需要先编译,每创建一个触发器,需要以“/”结束,然后才能执行下一个。

正确的做法应该是这样的;

---.应用信息
drop table app_info cascade constraints;
create table APP_INFO
(
id NUMBER() not null,
appid VARCHAR2() default NULL,
appkey VARCHAR2() default NULL,
md5_key VARCHAR2() default NULL,
aes_key VARCHAR2() default NULL,
permission VARCHAR2() default NULL,
email VARCHAR2() default NULL,
password VARCHAR2() default NULL,
ras_public_key VARCHAR2() default NULL,
constraint APP_INFO primary key (id)
); drop sequence app_info_id;
create sequence app_info_id
increment by
start with
nomaxvalue
nominvalue
nocache; CREATE OR REPLACE TRIGGER addAppInfo BEFORE INSERT ON App_INFO FOR EACH ROW
BEGIN
SELECT app_info_id.nextval INTO :new.id FROM dual;
END;
/
---.unit信息
drop table unit_info cascade constraints;
create table UNIT_INFO
(
UNIT_ID NUMBER() not null,
USERID VARCHAR2() default NULL,
UNIT_NAME VARCHAR2() default NULL,
UNIT_LINKMAN VARCHAR2() default NULL,
ORGANIZATION_CODE VARCHAR2() default NULL,
constraint UNIT_INFO primary key (UNIT_ID)
); drop sequence unit_info_id;
create sequence unit_info_id
increment by
start with
nomaxvalue
nominvalue
nocache; CREATE OR REPLACE TRIGGER addUnitInfo BEFORE INSERT ON UNIT_INFO FOR EACH ROW
BEGIN
SELECT unit_info_id.nextval INTO :new.unit_id FROM dual;
END;
/

 注意:存储过程也是一样的。

连续创建多个Oracle触发器失败,单个创建才成功的解决方法的更多相关文章

  1. [转]连续创建多个Oracle触发器失败,单个创建才成功的解决方法

    连续创建多个Oracle触发器失败,单个创建才成功的解决方法   1.当我连续执行创建多个触发器时,总是报编译通过,但存在警告或错误.如下:   create or replace trigger t ...

  2. Oracle触发器原理、创建、修改、删除

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

  3. [转载]oracle 11g不能导出空表的多种解决方法

    原文地址:11g不能导出空表的多种解决方法">oracle 11g不能导出空表的多种解决方法作者:Anlin_Yang ORACLE 11g 用exp命令导出库文件备份时,发现只能导出 ...

  4. Oracle用户密码过期和用户被锁解决方法【转】

    [原因/触发因素] 确定是由于Oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致. [影响和风险] 影响 密码过期后,业务进程连接数据库异 ...

  5. [转]Oracle 10g及pro*c相关问题及解决方法(转)

    Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...

  6. MySQL主从失败 错误Got fatal error 1236解决方法

    --MySQL主从失败 错误Got fatal error 1236解决方法 ----------------------------------------------------2014/05/1 ...

  7. Oracle 11gR2 用exp无法导出空表解决方法

    Oracle 11gR2 用exp无法导出空表解决方法 在11gR2中有个新特性,当表无数据时,不分配segment以节省空间.Oracle 当然在运行export导出时,空表则无法导出,可是还是有解 ...

  8. oracle select in超过1000条报错解决方法

    本博客介绍oracle select in超过1000条数据的解决方法,java框架是采用mybatis的,这可以说是一种比较常见的错误:select * from A where id in(... ...

  9. [转]Navicat for oracle 提示 cannot load oci dll,193的解决方法 orcale 11g

    Navicat for oracle 提示 cannot load oci dll,193的解决方法   内网有一台windows server 2012,安装了Navicat 11.1.8 连接or ...

随机推荐

  1. Python中用format函数格式化字符串的用法(2.7版本讲解哦!)

    语法 它通过{}和:来代替%.“映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.forma ...

  2. make install报错

    今天,在运行公司内核的机器上,编译标准内核,结果提示: 问题原因: 原来安装新内核的时候,会与原内核比较,如果缺少了某些模块,就会提示”ERROR: modinfo: could not find m ...

  3. Javascript -- 级联菜单, javascript解析xml文件

    1. cities.xml 保存省份和城市 <?xml version="1.0" encoding="GB2312"?> <china> ...

  4. CTCS-2017滚粗记

    Day 0: 下午不到四点就来到了宾馆,环境好评,网速能接受,但是你给我搞了个大床房是什么玩意儿啊... 晚上看MasterJH5574大神一直在写题热身(无限崇拜),自己板子没看几眼就丢到一遍去了, ...

  5. Python jieba 分词

    环境 Anaconda3 Python 3.6, Window 64bit 目的 利用 jieba 进行分词,关键词提取 代码 # -*- coding: utf-8 -*- import jieba ...

  6. Spring3: 在Bean定义中使用EL-表达式语言

    5.4.1  xml风格的配置 SpEL支持在Bean定义时注入,默认使用“#{SpEL表达式}”表示,其中“#root”根对象默认可以认为是ApplicationContext,只有Applicat ...

  7. js:s上次预览,上传图片预览,图片上传预览

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. iptables(四)iptables匹配条件总结之一

    经过前文的总结,我们已经能够熟练的管理规则了,但是我们使用过的"匹配条件"少得可怜,之前的示例中,我们只使用过一种匹配条件,就是将"源地址"作为匹配条件. 那么 ...

  9. python 2 3 读写中文文件 使用codecs最方便

    codecs进行文件的读取 python给我们提供了一个包codecs进行文件的读取,这个包中的open()函数可以指定编码的类型: import codecs f = codecs.open('te ...

  10. Andriod 四大组件,六大布局

    一.四大组件 Android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activit ...