Oracle - java创建Oracle 的触发器

 今天看完了触发器了 在我的随笔  中写到了这个触发器,大家可以看看,希望能帮上忙

今天碰到这个问题,遇到点问题,到这来 总结一下解决的办法,

需求,为一个用户当中的表增加一个自动增长列,我还没有学Oracle 的这部分,只是简单的记录以下步骤,不对的请多多指正

在Oracle数据库中新建一个表,自己完成就行

下面是分别增加序列的增加触发器的sql代码

序列:CREATE SEQUENCE U_001.RDLSEQ INCREMENT BY  START WITH  MINVALUE  CACHE 
触发器:create or replace trigger u_001.RDLCF //触发器:u_001为用户 . 你创建的触发器的名字
before insert on u_001.R_DL //在那个用户下面u_001的那个表上创建
for each row
begin
select u_001.RDLSEQ.nextval into :new.id from dual; //select 后面是 用户.刚刚创建的序列的 名字.nextval into :new . 这是你需要自增长的列名
end RDLCF;

下面是java实现创建Oracle 的代码,绿色注释的也是可用代码

@Test
public void addUserSeq() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:" +
"thin:@192.168.0.4:1521:orcl";
// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String u = "system";// 用户名,系统默认的账户名
String p = "***";// 你安装时选设置的密码
System.out.println("显示url:" + url);
Connection con = DriverManager.getConnection(url, u, p);// 获取连接 // String sql="CREATE SEQUENCE U_001.RDLSEQ INCREMENT BY 1 START WITH 1 MINVALUE 1 CACHE 50"; 创建序列
// System.out.println("执行的sql语句"+sql);
// java.sql.PreparedStatement ps = con.prepareStatement(sql);
// ps.executeUpdate(); 执行创建序列
//
// String sql2=" create or replace trigger u_001.RDLCF \r\n" + 创建触发器的sql代码
// " before insert on u_001.R_DL\r\n" +
// " for each row\r\n" +
// " begin\r\n" +
// " select u_001.RDLSEQ.nextval into :new.id from dual;\r\n" +
// " end RDLCF;";
// System.out.println("执行的sql语句"+sql2);
Statement ps2 = con.createStatement(); //在这是不能用 prepareStatement的,会报啥 索引缺少in或out参数,可能是这个的保护措施啥的,用普通的statement就可以
String ss="insert into U_001.R_DL(sjlx) values ('4')";
ps2.execute(ss);
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

然后执行完以后就会为表创建一个序列和一个自增长的触发器

还不是很了解这一部分。以后了解了会继续更新的

Oracle - java创建Oracle 的触发器的更多相关文章

  1. Java创建Oracle数据库表

    我们通常只用java执行DML(即:insert, update, delete, select)操作,很少用来执行DDL(create, drop, alert)操作.今天试了下如何用java来创建 ...

  2. Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数

    1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...

  3. oracle如何创建表的自增ID(通过触发器)

    Oracle中创建表的自增ID(通过触发器),序列的自增ID和触发器的自增ID的区别 1.新增数据(序列) --创建示例表 -- create table Student( stuId ) not n ...

  4. Oracle中创建触发器示例及注意事项

    1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYI ...

  5. Oracle存储过程创建及调用(转)

    在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器.在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的.相对来说,数据库系统中的触发器也是一种存储 ...

  6. Oracle学习【索引及触发器】

    索引B_Tree结构 请参照 响应图例 索引是一种允许直接访问数据表中某一数据行的树形结构,为了提高查询效率而引入,是独立于表的对象,可以存放在与表不同的表空间中.索引记录中存有索引关键字和指向表中数 ...

  7. Java基础——Oracle(七)

    一.概述 pl/sql (procedural lanaguage/sql)是 oracle 在标准 sql 上的扩展 .不仅允许嵌入sql 语言,还可以定义变量和常量,允许使用条件语句和循环语句,允 ...

  8. Java基础——Oracle(四)

    一.Sql * plus 常用命令 1.关于登录,连接的几个命令 1) conn[nect] //例  conn system/manager 用法 conn 用户名/密码 @网络服务名 (as sy ...

  9. 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库

    数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...

随机推荐

  1. java异步线程池同时请求多个接口数据

    一.主要使用类 . ExecutorService java线程池类 申明方式:ExecutorService exc = Executors.newFixedThreadPool(requestPa ...

  2. 图解clientWidth,offsetWidth,scrollWidth,scrollTop

    新手看到这几个属性,很头疼,参考了网上一些文章,加上自己实践,给出对这几个属性的解释 我把代码贴上来,方便大家验证 在chrome浏览器中,不知为什么图片容器高度比图片高度多了4px,把图片设置为bl ...

  3. sqlserver 缩小表空间

    1. 保留需要的数据之新表中->TRUNCATE原表数据->还原之前保留的数据之原表中->压缩表空间 脚本类似如下 SELECT * INTO #keep FROM Original ...

  4. ASP.Net MVC 布局页 模板页 使用方法详细说明

    一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...

  5. 【Windows 10 应用开发】细说文本资源文件(resw)

    最近,小戏骨版<红楼梦>很是火热,老周一口气看完了9集,一直看到 Surface 的风扇呼呼响.林黛玉和薛宝钗这两个角色都演得不怎么样,倒是演史湘云的娃娃演得不错,老周甚是喜欢. 于是,昨 ...

  6. python学习记录-socket模块

    主要使用的模块是socket模块,在这个模块中可以找到socket()函数,该函数用于创建套接字对象.套接字也有自己的方法集,这些方法可以实现基于套接字的网络通信. 1.socket类型 构造函数: ...

  7. Install Ubuntu On Windows10(win10上安装linux系统)

    一.准备: 硬件:U盘 软件:ultraiso.Ubuntu镜像文件 二.安装linux: 1.Ubuntu官网(http://www.ubuntu.org.cn/download/alternati ...

  8. Guava快速入门

    Guava快速入门 Java诞生于1995年,在这20年的时间里Java已经成为世界上最流行的编程语言之一.虽然Java语言时常经历各种各样的吐槽,但它仍然是一门在不断发展.变化的语言--除了语言本身 ...

  9. springMvc+hibernate的web application的构建

    闲来没事,想整理下一些知识. 这篇文章是关于spring的web程序的搭建,有什么不对的地方希望大家批评指正. 首先我们要了解什么是spring,这里可能很多大家也都明白,无非是一个管理对象的一个容器 ...

  10. 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块

    HC-SR04 采用 IO 触发测距.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码. 1. 准备 H ...