[转]PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理 只要有人用了: select t.* from 表名  t where 字段=xxx  for update 而不是: select t.rowid,t.* from 表名  t where 字段=xxx  for update 进行数据更新操作,就会出现这种情况. for update 不带rowid,是一种很傻X的行为,就像使用svn进行源码修改不先获…
只要有人用了: select t.* from 表名  t where 字段=xxx  for update 而不是: select t.rowid,t.* from 表名  t where 字段=xxx  for update 进行数据更新操作,就会出现这种情况. for update 不带rowid,是一种很傻X的行为,就像使用svn进行源码修改不先获取最新一样. 如果是在客户现场的真实库中这样操作还会导致客户业务处理挂起,后果是很严重的. 因此,在项目组内尤其是新人需要强调相关操作规范,使…
these query result are not updateable,include the ROWID to get updateab 原因: 其实,选中一个表后,右键,如果选择“query data”,则在跳出的SQL window上显示的SQL语句是select * from table_name:如果选择“edit data”,则在跳出的SQL window上显示的SQL语句是select *,rowid    from table_name或者是select * from tab…
我们在对Oracle数据库进行操作时,有时会在查询完结果后想要对其中的某些数据进行操作,当我们点击编辑(一个锁标志)是,会提示我们上述问题中的错误:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果.按照错误提示的信息我们可以采用两种解决办法: 解决办法1:在查询语句后面写上for update,如:select * from 表名 for update: 解决办法2:在查询的列中使用rowid属性,如:select rowID, 表名.* from 表名…
环境 Oracle 11.2.0 + SQL Plus 问题 根据以下要求编写函数:将scott.emp表中工资低于平均工资的职工工资加上200,并返回修改了工资的总人数.PL/SQL中有更新的操作,执行此函数报如下错误:ORA-16551: 无法在查询中执行 DML 操作. 解决 在声明函数时加上: PRAGMA AUTONOMOUS_TRANSACTION; 并在执行完DML后COMMIT. 操作日志 --登录到Oracle C:\Users\Wentasy>sqlplus wgb SQL*…
我们在开发的过程中,可能需要手动删除或者修改数据库数据,但是在update之后,程序还是查到的是原始的数据.而我们自己在pl/sql中查到的确实修改之后的数据,通常情况下这个是因为我们在修改之后没有commit.每次修改之后commit就可以解决这个问题.…
pl/sql dev能正常登录数据库,但是登录后执行查询报 ORA-03114异常. 1.建议安装PL/SQL Dev的32位版,64位版不太好用,且需要64位对应的OCI.DLL. 64位简直不要太好用,我之前安装32位版本,由于未知原因,在智能提示出字段之后,确定,有延迟,64位已解决. 2.使用的ORACLE最小客户端的OCI.DLL. 3.查询报ORA-03114. 4.此异常时由于最小客户端OCI.DLL异常引起的,下载标准的installclient,不要下lite版,可能缺少某些组…
在windows中创 建一个名为“NLS_LANG”的系统环境变量,设置其值为"AMERICAN_AMERICA.ZHS16GBK",   NLS_LANG的值为:select userenv('language') from dual;查询的结果:…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from xuehi.com where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from xuehi.com where num=0 3.应尽量避免在 where 子句中使用…
最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5条了) 方法一: * from [StuDB].[dbo].[ScoreInfo] where [SID] not in ( [SID] from [StuDB].[dbo].[ScoreInfo] order by [SID]) order by [SID] 结果: 此方法是先取出前10条的SID…
配置文件:dbconfig.properties 里面的数据 jdbc.url.jwhat=jdbc\:mysql\://ip\:3306/laibadev?useUnicode\=true&characterEncoding\=UTF-8 jdbc.username.jwhat= jdbc.password.jwhat= jdbc.dbType=mysql table 表sql: INSERT INTO `bns_spider_user` VALUES ('http://toutiao.com…
范例: 查询每个员工的编号,姓名,职位,工资,工资等级,部门名称 ●确定要使用的数据表 |- emp表:员工的编号.姓名.职位.工资 |- salgrade表:工资等级 |- dept表:部门名称 ●确定已知的关联字段 |- emp表与salgrade表: emp.sal BETWEEN salgrade.losal AND salgrade.hisal |- emp表与dept表: emp.deptno=dept.deptno 一般情况下如果是多个消除笛卡尔积的条件都会使用AND连接 -- 第…
创建数据表空间create tablespace stbss datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf' size 100m autoextend on next 32m maxsize 2048m ---------------------------------stbss 是表空间名称D:xxxxx.dbf 是你表空间数据的存放地址和文件名称size 100m 开始是100M的大小autoextend o…
在查询列的时候 多查询一列就可以了 当然是要在所有列对应的情况下 把第一列的 前追加一列 这样就不会错位了 例如如下图…
/*********************************************** 一个数据对象一个事务(且记录错误信息到处理对象) ***********************************************/ LOOP 要处理的对象 begin invoke api1 (api没有ROLLBACK机制) if api1有错 then rollback; 获取错误信息; 更新错误信息到处理对象; end if invoke api2 (api有ROLLBACK机…
1.背景 一条记录(如select * from A where a='1'),使用pl/sql作为条件可以查询出记录,但用ado.net sql查询结果却是空. 2.原因 a字段的数据类型的char(10),当写入1时数据库存放的是1+9个空格(自动补空格),pl/sql比较智能,查询时过滤了空格,而ado.net则是原样查询,所以查询结果为null(查询条件为a='1',而数据表中a的值为'1           ') 3.解决方案      1.业务上处理,即所有写入a字段的值长度都为10…
数据提取 -- 游标 游标只是一个指向某个结果集的指针. 声明游标: cursor employee_cur IS select * from employees; 打开游标: open employee_cur; 提取数据: fetch employee_cur into employee_rec;  -- employee_rec 是employees%rowtype类型 关闭游标: close employee_cur; 也可以多表 join 作为结果集. declare cursor j…
Oracle和MySql的分页查询区别:     Oracle的分析查询,之前Oracle的分页是使用伪列 ROWNUM 结合子查询实现,mysql的分页更简单,直接使用 LIMIT 关键字就可以实现了. 要实现分页查询需要知道两个参数: currentPage: 表示当前页(cp) lineSize:表示每页显示的数据量(ls) oracle的分页示例: 显示第一页,每页显示三条数据 SELECT * FROM (SELECT ROWNUM rn,empno,ename,job,mgr,hir…
最近学习SSM项目开发,用到oracle数据库, 使用管理软件PL/sql developer往数据库表中插入数据时记录乱码.  结果如下: 可以看到中文数据都乱码成了???????问号, 看了网上各位大佬的解决办法,说是由于oracle服务器端字符编码 和 Oracle 客户端字符编码不一致引起的. (但是我的oracle服务器端 和 Oracle 客户端字符编码是一样的,这就很纳闷了,但同样用了以下解决办法,搞定!!!) 第一步: 登录PL/sql developer,检查Oracle服务器…
平常查询数据 ' 当想要查询 不等于1 的数据的时候,一般会这样查询 ' 此处查询结果没查到所有想要的结果,如果night_flag 列数据为 null时,此行数据是查询不到的. 解决方法一: ' 解决方法二: ' union select * from home where night_flag is null…
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的…
Oracle为PL/SQL中的SQL相关功能提供了FORALL语句和BULK COLLECT子句,显著的增强了SQL相关功能.这两个语句一起被称作PL/SQL的批处理语句.Oracle为什么要提供这两个语句呢?我们首先了解一下PL/SQL的引擎.该引擎可以安装在数据库,或者应用开发工具上,例如Oracle Froms.当PL/SQL运行引擎执行一个代码块时,引擎本身只会处理过程语句,而SQL语句是发送给SQL引擎执行.SQL语句的执行时是由数据库的SQL引擎负责,再将执行结果返回给PL/SQL引…
原帖地址:http://blog.csdn.net/chenjinping123/article/details/8737604 ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在oracle数据库…
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQL程序设计终极指南>志在打造PL/SQL领域最为系统.全面.实战.权威的著作,通过一系列非常突出的优势在大量的同类书中脱颖而出,成为该领域的标准读物. PL/SQL本身涉及的知识点浩瀚.庞杂,初学者根本无法依靠自身能力理清头绪,学习成本极高.本书对知识点进行了体系化的梳理,化繁杂为有序,突出重点,直指核…
1.PL/SQL概述 1)概念 pl/sql(procedural language)是Oracle在标准sql语言的基础上的扩展,可以实现定义变量.使用逻辑控制语句等 作用:默认oracle一次只能处理一条SQL语句,每条SQL语句都会向服务器发送请求调用,如果使用PL/SQL,一个块中的语句作为一个组,只向服务器发送一次请求调用,减少了网络传输,节省带宽,提高效率,提高安全性 缺点:移值性差,只有oracle中可用 2)组成 pl/sql程序由块组成,由块可组成不同的程序形式,包括:匿名块.…
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用.PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断.循环等操作实现复杂的功能或者计算.   工具/原料   PL/SQL Developer 32位免安装客户端 方法/步骤…
最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作. 运行环境 服务器:windows server 2008 64位 服务器oracle版本:oracle 11g R2 64位,字符集是ZHS16GBK. 本机:windows 7 64位 需要准备的软件 1.Instant Client 12.1.0.2.0 32位和64位 Instant Cl…
  1>>>>>异常错误处理 1 >预定义的异常处理 预定义说明的部分 ORACLE 异常错误对这种异常情况的处理,只需在PL/SQL块的异常处理部分,直接引用相应的异常情况名,并对其完成相应的异常错误处理即可.例1:更新指定员工工资,如工资小于1500,则加100: DECLARE v_empno employees.employee_id%TYPE := &empno; v_sal employees.salary%TYPE;BEGIN SELECT sal…
PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同:…
在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘   最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作. 运行环境 服务器:windows server 2008 64位 服务器oracle版本:oracle 11g R2 64位,字符集是ZHS16GBK. 本机:windows…