`

oracl如果存在记录更新否则插入新纪录

 
阅读更多
DECLARE
vcount number;
begin
select count(*) into vcount from zhang.test where aname='t' and bname='t';

if vcount=0 then
   insert into zhang.test values(3,'t1','t1','t1','t1',50);
else
    update zhang.test set abcount= abcount + 80 where aname='t' and bname='t';
end if;
commit;
end;


--创建存储过程
create or replace procedure record_new_order(
rcount in number
)
is
vcount number;  
begin  
select count(*) into vcount from zhang.test where aname='t' and bname='t';  
  
if vcount=0 then  
   insert into zhang.test values(3,'t1','t1','t1','t1',rcount);  
else  
    update zhang.test set abcount= abcount + rcount where aname='t' and bname='t';  
end if;   
end;
--执行存储过程--
begin 
record_new_order(10);
end;

	
//调用存储过程
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
		Class.forName("oracle.jdbc.driver.OracleDriver");

		// DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
		String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		Connection conn = java.sql.DriverManager.getConnection(dbUrl, "zhang", "password");

		String sql = "{call record_new_order(?)}";
		CallableStatement cs = conn.prepareCall(sql);
		cs.setInt(1,10);
		
//		cs.registerOutParameter(20, Types.INTEGER);
		cs.execute();
		// ResultSet rs = cs.executeQuery();
		// int k= rs.getMetaData().getColumnCount();
		// System.out.println(cs.getObject(2));
		// ResultSet rs = (ResultSet)cs.getObject(2);
		// while (rs.next()){
		// for (int i=1;i<k+1;i++){
		// System.out.print(rs.getObject(i)+"|");
		// }
		// System.out.println();
		//      
		// }
		cs.close();
		conn.close();
	}
分享到:
评论

相关推荐

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle中,如果两个或多个表之间存在关联,比如`emp`表和`dept`表通过`deptno`字段关联,批量插入数据时需要确保关联关系的一致性。例如,插入`emp`表时,`deptno`字段应引用已存在于`dept`表中的`deptno`。可以先...

    oracle中insert, 插入批量插入及union

    oracle中insert, 插入批量插入及union

    Oracle存在修改,不存在插入记录

    Oracle这名字对我来说是如此的熟悉,但是对其内容却很陌生,近公司的一个项目用起了Oracle,所以也开始高调的用起了Oracle。在没有接触Oracle之前,听很多人都说Oracle的语法与MS SQL差不多,我在朋友圈里也帮着吹嘘...

    向Oracle数据库插入Clob大段文本解决方法

    如果需要更新数据库中已存在的记录的CLOB字段,可以采用类似的方法,但使用UPDATE语句代替INSERT语句。具体步骤与插入CLOB数据相似: 1. 构建UPDATE语句,同样使用`:lgContent`作为CLOB字段的占位符。 2. 创建`...

    查看登录oracle数据库用户记录.docx

    "查看登录 Oracle 数据库用户记录" Oracle 数据库是一个强大的关系型数据库管理系统,提供了强大的数据存储和管理功能。为了管理和监控数据库的访问情况,需要对登录 Oracle 数据库的用户记录进行跟踪和查看。本文...

    oracle使用 merge 更新或插入数据(总结)

    oracle使用 merge 更新或插入数据(总结)

    oracle ODP.NET 批量插入或更新

    ### Oracle ODP.NET 批量插入或更新技术详解 #### 一、背景介绍 在数据库操作中,批量处理数据是一项非常重要的技术。特别是在处理大量数据时,如何高效地执行批量插入或更新操作对于提高应用程序性能至关重要。...

    dbutils + oracle 增删改查批量插入示例

    总的来说,`dbutils + oracle 增删改查批量插入示例`是一个很好的学习资源,它帮助开发者掌握如何在Java项目中有效地进行数据库操作,尤其是在处理大数据量时,批量插入的优势尤为明显。通过理解和实践这个示例,...

    oracle向数据库里插入图片

    例如,要更新图片,只需再次执行插入语句,但使用新的BLOB值;要删除图片,可以使用`DELETE`语句;要获取图片大小,可以使用`DBMS_LOB.GETLENGTH`函数。 总的来说,虽然在Oracle数据库中直接存储图片并不常见,但在...

    oracle批量插入数据脚本

    oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本。

    Oracle插入数据时获取自增ID

    在插入新记录前,该触发器会自动为每一行的新记录的`id`字段赋值为序列的下一个值。这种方式更加灵活且无需在每个插入语句中显式指定序列值。 #### 获取刚插入的ID 在Oracle中,如果需要获取刚插入的数据的ID值,...

    高效批量插入和更新

    C#批量插入,更新ORACLE 保存100万条数据大概3-5秒 保存或者更新100万条数据大概20秒 DataTable保存100万条数据大概1-2分钟 可能因环境原因时间有差异,不过可以看出性能还是很大提升的

    通过.bat文件连接oracle 插入数据库记录

    标题中的“通过.bat文件连接Oracle 插入数据库记录”指的是使用批处理(.bat)脚本来操作Oracle数据库,实现数据的插入功能。Oracle是全球知名的关系型数据库管理系统,而批处理脚本则是在Windows操作系统中运行的一...

    oracle循环插入

    oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入

    oracle SQL 语句插入数据

    有时,你可能想插入新记录,但仅当该记录不存在时才执行。这时可以使用`INSERT INTO...SELECT...WHERE NOT EXISTS`: ```sql INSERT INTO Employees (ID, Name, Salary) SELECT ID, Name, Salary FROM NewEmployees...

    java代码oracle数据库批量插入

    ### Java代码实现Oracle数据库批量插入的关键知识点 #### 1. JDBC连接配置 - **JDBC URL**: `jdbc:oracle:thin:@IP:1521:orcl`,这里的URL指定了连接到Oracle数据库的方式。其中`@IP:1521:orcl`中的IP是指数据库...

    oracle批量插入测试数据

    数据库做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条 SQL快速生成大量的测试数据的方法。 产生测试数据的SQL如下...

    oracle 批量插入存储过程

    oracle 批量插入存储过程,性能非常高!

    Oracle插入随机数

    ### Oracle插入随机数 在Oracle数据库管理中,有时我们需要向数据库表中插入大量的随机数据来进行测试、演示或者数据模拟分析等工作。本篇文章将详细介绍如何利用自定义的Oracle函数来实现这一功能。 #### 自定义...

    C# Oracle批量插入数据进度条的实现代码

    由于项目需求,需要将Excel中的数据进过一定转换导入仅Oracle数据库中。考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户...

Global site tag (gtag.js) - Google Analytics