Oracle数据库
mischen520
JAVA高级架构师
展开
-
Spring 事务失效的场景
4.如果在当前类中进行内部调用方法,比如在A类中有a方法和b方法,a方法没有加@Transaction,b方法加了@Transaction,在方法a中调用方法b,方法b中的事务也不会生效。这是因为spring在扫描bean的时候会自动为标注了@Transaction注解类生成一个代理类,在有注解方法被调用时,实际上是代理类调用的,代理类在调用之前会开启事务,执行事务操作。但是同类中的方法相互调用,相当于this.b(),此时的b方法并非代理类调用,而是直接通过原有的bean直接调用,所以注解不起作用。原创 2023-11-10 17:45:00 · 188 阅读 · 0 评论 -
谈谈你的SQL优化经验(面试题)?
计算的字段,就表示在没计算之前,这个字段的值是不确定的,根据上篇写的工作。滤条件起到正确的作用,首先要明白这个条件应该在什么时候起作用,然后再决定。况下,如果要过滤的条件没有涉及到要计算字段,那它们的结果是一样的,只是。才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,的,所以在这种情况下,两者的结果会不同。这是一条简单易记的规则,但是实际的执行效果还须检验,在。中所有的列必须包含在相同的索引中并保持在索引中的排列顺序。这也是一条简单而重要的规则,当仅引用索引的第二个列时,原创 2023-05-28 10:51:17 · 621 阅读 · 0 评论 -
ORA-01461:仅能绑定要插入 LONG 列的 LONG 值
ORA-01461:仅能绑定要插入 LONG 列的 LONG 值这个功能是解析一个excel表格,然后将解析的数据批量插入数据库中,数据库用的是oracle,因为excel里面的数据量比较多,有两千多条,细看也看不出来是为啥报错,没法,我就只有先判断每个字段的字符串长度,因为数据库该列的长度是VARCHAR2(4000),所以我就在数据入库的时候判断了一下字符串长度,超过4000的就不让他插入数据库了。可是奇怪的是,没有任何数据超过了40...原创 2022-07-03 16:53:46 · 13081 阅读 · 0 评论 -
ORA-01502 索引或这类索引的分区处于不可用状态
ORA-01502 索引xx或这类索引的分区处于不可用状态索引失效后,向表中是无法插入数据的原因: 出现这个问题,可能有人move过表,或者disable 过索引。删除数据后,move回收表空间导致表索引失效。alter table message move;1.索引失效 重建索引解决方法:–查索引失效select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name=‘P原创 2022-07-03 15:12:50 · 5003 阅读 · 0 评论 -
with as 的使用方式详解
一. WITH AS 的含义WITH AS 短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在 UNION ALL 的不同部分,作为提供数据的部分。特别对于 UNION ALL 比较有用。因为 UNION ALL 的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用 WITH AS 短语,则只要执行一遍即可。如果原创 2022-06-02 19:14:26 · 11189 阅读 · 0 评论 -
oracle面试题解析(用一条sql语句实现批量一对一更新)
需求:现在有一个项目表project,里面的字段主要有proj_Id,money,主键字段为id,proj_Id可能为空,money字段类型为NUMBER(17,2),在某种条件下,会关联表proj_appl表字段proj_Id,另外一个表proj_appl,里面的字段主要有proj_Id,appl_money,主键字段为proj_Id,appl_money字段类型为NUMBER(17,2),现在两边的金额不一致,需要把两个表金额不一致的替换为金额一致的表,金额以表proj_appl表字段proj_I原创 2022-05-31 19:00:00 · 612 阅读 · 0 评论 -
如何利用一条sql语句进行批量更新(需要满足一对一更新)
需求:现在有一个项目表project,里面的字段主要有proj_Id,money,主键字段为id,proj_Id可能为空,money字段类型为NUMBER(17,2),在某种条件下,会关联表proj_appl表字段proj_Id,另外一个表proj_appl,里面的字段主要有proj_Id,appl_money,主键字段为proj_Id,appl_money字段类型为NUMBER(17,2),现在两边的金额不一致,需要把两个表金额不一致的替换为金额一致的表,金额以表proj_appl表字段proj_I原创 2022-05-31 18:00:00 · 7410 阅读 · 0 评论 -
SQL优化的基本思路
(1)建立物化视图或尽可能减少多表查询。(2)以不相干子查询替代相干子查询。(3)只检索需要的列。(4)用带in的条件子句等价替换or子句。(5)经常提交commit,以尽早释放锁。(6)避免嵌套的游标(Cursor)和多重循环等。...原创 2022-03-29 08:25:00 · 3377 阅读 · 0 评论 -
Oracle查询今天、昨天、本周、上周、本月、上月数据
查询今天数据:SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,‘YYYY-MM-DD’)=TO_CHAR(SYSDATE,‘YYYY-MM-DD’)查询昨天数据:SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,‘YYYY-MM-DD’)=TO_CHAR(SYSDATE-1,‘YYYY-MM-DD’)查询本周数据:SELECT COUNT(1) FROM T_CALL_原创 2022-03-19 14:33:42 · 8164 阅读 · 0 评论 -
索引设计的原则?
查询更快、占用空间更小适合索引的列是出现在where子句中的列,或者连接子句中指定的列基数较小的表,索引效果较差,没有必要在此列建立索引使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间,如果搜索词超过索引前缀长度,则使用索引排除不匹配的行,然后检查其余行是否可能匹配。不要过度索引。索引需要额外的磁盘空间,并降低写操作的性能。在修改表内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以只保持需要的索引有利于查询即可。定义有外键的数据列一定要原创 2021-10-17 08:22:40 · 345 阅读 · 0 评论 -
数据库的备份与恢复
数据库中的数据一般都十分重要,不能丢失,因为各种原因,数据库都有损坏的可能性(虽然很小),所以事先制定一个合适的、可操作的备份和恢复计划至关重要。备份和恢复计划的制订要遵循以下两个原则:(1)保证数据丢失的情况尽量少或完全不丢失,因为性价比的要求,这要取决于现实系统的具体要求。(2)备份和恢复时间尽量短,保证系统最大的可用性。数据库备份按照不同方式可分为多种,这里按照备份内容分为物理备份和逻辑备份两类。物理备份是在操作系统层面上对数据库的数据文件进行备份,物理备份分为冷备份和热备份两种。冷备份是将数据原创 2021-09-04 15:49:05 · 2067 阅读 · 0 评论 -
数据库系统的安全设计
原创 2021-08-29 09:03:30 · 1666 阅读 · 0 评论 -
数据库完整性的作用
原创 2021-08-29 08:51:50 · 959 阅读 · 0 评论 -
union排序问题
今天在写sql的时候,发现有一个需求需要使用union和unionall来进行关联查询,需求是这样的,需要查询一个报告列表,展示的规则如下:1.先展示10天以内的推荐的报告数据2.然后查询2年以内的报告数据,按时间由近及远进行展示。这个就有一个问题,用之前的sql是解决不了用户希望的数据的,因为10天以内既有推荐的数据,也有没有推荐的数据,10天以外还有2年的数据需要查询,所以我就想到了使用union和unionall来进行联合查询,总的设计思路是这样的:a.我先去查询10天以内的推..原创 2021-02-24 20:25:20 · 3725 阅读 · 0 评论 -
什么是分库分区分表
一、什么是分库分区分表分库 分库就是将一个数据库服务实例按照业务逻辑拆分了多个数据库实例,以满足海量数据的业务请求,一般出现这种情况就是因为高并发、海量数据的请求过来使单个数据库的实例超出了系统能处理的最大QPS、TPS,即是因为数据库的处理能力满足不了系统性能的要求。所以现在开始实行微服务的架构,将之前的一个单体架构拆分了多个微服务系统实例,有一半的原因也是因为这样。分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的分...原创 2021-02-17 23:11:58 · 1286 阅读 · 2 评论 -
基于数据库实现的分布式锁
借助数据中自带的锁来实现分布式的锁publicbooleanlock(){connection.setAutoCommit(false)while(true){try{result = select * from methodLock where method_name=xxx forupdate;if(result==null){returntrue;...原创 2020-10-22 22:13:15 · 686 阅读 · 1 评论 -
数据库知识总结
一、PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,原创 2016-06-19 08:26:53 · 482 阅读 · 0 评论 -
oracle数据库开发实战
现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成: 商店 product(商品号 productid,商品名 productname,单价 unitprice,商品类别 category,供应商 provider); 顾客 customer(顾客号 customerid,姓名 name,住址 location); 购买 purcase(顾客号 customeri原创 2016-06-19 15:43:05 · 2829 阅读 · 0 评论 -
PL/SQL 快速的破解方法
打开注册表在run下输入regedit删除1.HKEY_CURRENT_USER/Software/Allround Automations2.HKEY_CURRENT_USER/Software/Microsoft/Security原创 2016-10-20 12:06:18 · 772 阅读 · 0 评论 -
使用PL/SQL做oracle数据库的备份方法
1.使用PL/SQL Developer登录你需要备份的数据库;2.选择工具->导出用户对象;3.在对象列表中选择需要备份的对象,再选择一个sql类型的输出文件,点击【导出】,这只是导出数据结构;4.选择工具->导出表;5.在列表中选择需要导出数据的表,再选择【SQL插入】,选择一个sql类型的文件,点击【导出】,这一步是把数据导出数据库。6.这样就得到两个原创 2016-11-27 09:32:53 · 1377 阅读 · 0 评论 -
PL/SQL远程连接数据库的操作办法
1.解压instantclient_12_1-x32.rar文件,得到一个instantclient_12_1-x32文件夹 (如果没有自己在网上下一个)2.在该目录下面依次建立一个这样的文件路径:E:\instantclient_12_1-x32\network\admin3.把tnsnames.ora放到2的目录下面4.tnsnames.ora的内容为: EISP原创 2016-12-19 20:07:20 · 417 阅读 · 0 评论 -
plsql远程连接数据库的详细步骤
1.将instantclient_12_1-x32.rar文件解压缩,解压之后在下面instantclient_12_1-x32\network\admin\tnsnames.ora,找到tnsnames.ora这个文件,在这个文件里面配置详细信息 如果是本地没有安装客户端,可以像下面这样配置 EISP =(DESCRIPTION = (ADDRESS_L原创 2016-12-30 17:28:04 · 12330 阅读 · 0 评论 -
PL/SQL自定义简化查询语句的操作方法
在pl/sql中,我们经常要对一些常用的表进行查询操作,每次都输入一些查询语句势必比较麻烦,为了简化查询,我们可以设置一个快捷键+tab键来实现他的功能,以后每次输入简化的几个字母就可以查询到了,下面是如何设置的具体方法:原创 2017-01-17 11:28:12 · 696 阅读 · 0 评论 -
sql中like的用法
1.模糊查询语句: select count(*) from THIRD.BASE_AREA where name like '%辖区' 2.利用模糊查询过滤: SELECT CODE AREACODE,NAME AREANAME,CCODE FROM THIRD.BASE_AREA where name not like '%辖区'原创 2017-02-21 10:36:07 · 2210 阅读 · 0 评论 -
将数据库中某个字段的格式20170508改为2017-05-08格式的方法
执行如下这个方法,就可以将数据库中所有20170805的格式全部转换为2017-08-05的格式:update custome set datb=substr(datb, 0, 4)||'-'||substr(datb, 5, 2)||'-'||substr(datb, 7, 2) where length(datb)=8;原创 2017-05-10 18:05:28 · 397 阅读 · 0 评论 -
给oracle中某个表添加一个新的字段的sql
Alter table THIRD.VISIT_ORDER add (version number default 0);原创 2017-05-10 18:08:04 · 8158 阅读 · 0 评论 -
在oracle中给一个表创建序列的语句
CREATE SEQUENCE test.za005_seq INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10;原创 2017-05-10 18:10:17 · 3910 阅读 · 0 评论 -
oracle安装出现问题解决方案和重装oracle必须删除oracle的服务项
错误方式解决一:w7安装oracle 10g时发生“程序异常终止。发生内部错误”的提示首先、确保你有该文件夹的完全控制权。(修改:文件夹点右键 属性-〉安全-〉高级-〉所有者-〉改为自己。接着编辑自己的权限为完全控制)其次、将setup.exe的兼容性改为windows server 2003(server pack 1)。就是右键属性-〉兼容性-〉兼容模式中。接着转载 2016-06-05 19:08:36 · 3994 阅读 · 0 评论