oracle更新数据没反应,ORACLE更新数据时如果有就更新没有就插入

本文详细介绍了在SQL中如何使用BEGIN...END块进行更新和插入操作。当尝试更新特定记录但未找到时,自动插入新记录。同时,解释了SQL%NOTFOUND和SQL%FOUND这两个布尔值的作用,它们分别在没有影响任何行和影响行数大于0时返回真。此外,还提到了SQL%ROWCOUNT在DML语句执行后的行数统计。文章中还提及了在Oracle中遇到的错误‘ORA-01008:not all variables bound’的情况,并强调了在UPDATE语句中使用WHERE子句的重要性。最后,讨论了在GORM、FreeSql等框架中更新数据时的一些注意事项和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL写法:

begin

update table_name set salary = 10000 where emp_id = 5;

if sql%notfound then

insert into table_name (id,name,salary)values("","","") ;

end if;

end;

SQL%NOTFOUND 是一个布尔值。与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true。否则返回false。这样的语句在实际应用中,是非常有用的。例如要update一行数据时,如果没有找到,就可以作相应操作。

当update emp_id为5的这行记录,如果update影响条数为0,则插入一条数据。

SQL%FOUND 的用法与sql%notfound用法相反,也是与最近的sql语句发生交互,如果影响行数大于0条,则为true

否则为false。

SQL%ROWCOUNT在dml语句执行前是null,执行后,对于select into语句,执行成功则值为1,不成功则值为0。

在Oracle中更新数据时,抛出:ORA-01008: not all variables bound

在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都 ...

SQL中使用UPDATE更新数据时一定要记得WHERE子句

我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 my ...

FreeSql (十二)更新数据时指定列

var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initia ...

FreeSql (十三)更新数据时忽略列

var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initia ...

mongodb 更新数据时int32变为double的解决办法 & 教程

https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html mongodb 更新数据时int32变为double的解决办法   ...

使用xadmin更新数据时,报错expected string or bytes-like object

expected string or bytes-like object 期望的字符串或类似字节的对象,一般为数据类型不匹配造成 本人在实际项目里发现的问题是: 数据库里的字段类型与django里mo ...

gorm 更新数据时,0值会被忽略

原文: https://www.tizi365.com/archives/22.html ------------------------------------------------------- ...

oracle添加数据时主键自动增长

CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  SNAME VARCHAR2(20), ); 此时给学生表添加数 ...

Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果

我们在对Oracle数据库进行操作时,有时会在查询完结果后想要对其中的某些数据进行操作,当我们点击编辑(一个锁标志)是,会提示我们上述问题中的错误:这些查询结果不可更新,请使用ROWI或者SELECT ...

随机推荐

windows平台下基于VisualStudio的Clang安装和配置

LLVM 是一个开源的编译器架构,它已经被成功应用到多个应用领域.Clang是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程 ...

h5移动端让文字不可选中复制

可以用css属性来控制 -moz-user-select:none; -webkit-user-select:none;

流媒体测试笔记记录之————解决问题video.js 播放m3u8格式的文件,根据官方的文档添加videojs-contrib-hls也不行的原因解决了

详细代码Github:https://github.com/Tinywan/PHPSharedLibrary/tree/master/Tpl/Html5/VideoJS 想播放hls协议的就是m3u8 ...

【iCore3 双核心板】例程十七:USB_MSC实验——读/写U盘(大容量存储器)

实验指导书及代码包下载: http://pan.baidu.com/s/1qXt1L0o iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

sqlite3常用命令&语法

sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,SQLite大量的被用于手机,PDA,MP3播放器以及机顶盒设备.    Mozilla Firefox使用SQLit ...

浅谈URL跳转与Webview安全

学习信息安全技术的过程中,用开阔的眼光看待安全问题会得到不同的结论. 在一次测试中我用Burpsuite搜索了关键词url找到了某处url,测试一下发现waf拦截了指向外域的请求,于是开始尝试绕过.第 ...

HDFS集群优化篇

HDFS集群优化篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作系统级别优化 1>.优化文件系统(推荐使用EXT4和XFS文件系统,相比较而言,更推荐后者,因为XF ...

虚拟机安装centos7, 再安装gitlab 简单步骤

先安装Linux centos7(朋友贡献的. Linux官网有下) 我自己用vm安装的. 未出现特殊状况 gitlab的搭建 安装基础包 yum -y install curl policycore ...

mybatis连接数据库的几种方式

1.可以通过配置文件 <?xml version="1.0" encoding="UTF-8"?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值