数据库
年十六
这个作者很懒,什么都没留下…
展开
-
【数据库】Oracle实现判断条件批量修改功能
背景: 由于拆库项目发展,需要对表进行简单重构;业务要求迁移的表需要存在 ‘添加人ID’,‘添加人’,‘添加时间’,‘修改人ID’,‘修改人’,‘修改时间’几个字段,原表不存在的这几个字段需要进行新增字段。并且要求这几个字段都应设置‘不可为null。 在数据转移时原数据可为null的字段覆盖不可为null字段时会导致数据转移失败(如:原表的添加时间为null,数据转移到添加时间不可为null的新表时就会发生报错);所以在表迁移初期这几个字段都设置为‘可为null’.目的: ...原创 2020-10-14 09:55:00 · 1431 阅读 · 5 评论 -
【数据库】关于悲观锁和乐观锁
一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在DBMS中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性和.转载 2020-09-07 14:01:14 · 361 阅读 · 1 评论 -
【数据库】Oracle更改时间显示格式
在Oracle数据库查询中关于时间值的默认显示如下:但是往往查看数据时需要具体到时分秒,那么这样的默认值将无法达到效果,需要将时间格式化为时分秒格式语句:alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';结果如下:需要注意的是,这种格式化的方式在每次重启Oracle时都要重新格式化。...原创 2020-07-07 10:08:21 · 5372 阅读 · 1 评论 -
【数据库】当要对表进行操作时存在触发器限制
当要对表进行操作时存在触发器限制,可先让触发器失效再进行操作;操作结束后启用触发器如下:--TG_PLATFORM_BILL_U_LOCK:触发器名称--disable:禁用触发器--enable:启用触发器alter trigger TG_PLATFORM_BILL_U_LOCK disable;update FM_STAT_PLATFORM_BILL set SALE_SITE='xx' where ID='xxx'alter trigger TG_PLATFORM_BILL_.原创 2020-07-01 09:45:53 · 506 阅读 · 0 评论 -
【数据库】用游标简单修改大批量数据(三千七百万数据)
对于大表批量操作建议用游标操作.如对以下大表的操作,直接update耗时约16min;运用游标后耗时3min左右declare po_success integer; po_info varchar2(2000); cursor cur_cdr is --查询目标数据 SELECT ID FROM LISTING_QUEUE_LAZ where SALE_SITE='SGAMZ'; type type_listing_queue_laz_id is ta原创 2020-07-01 09:40:24 · 800 阅读 · 0 评论 -
【数据库】时间范围按月自动分区表创建demo
--时间范围按月自动分区表创建democreate table HIP_LOG_NODE_Part( ID VARCHAR2(32) not null, LOG_ID VARCHAR2(32), BUSINESS_ID VARCHAR2(36), NODE_ID VARCHAR2(32), NODE_NAME VARCH...原创 2020-07-01 09:23:22 · 748 阅读 · 0 评论 -
【Oracle】数据库查询所有并按顺序显示部分字段
早先用sql server的时候是这样的:查全表:select * from table;查部分字段:select name,id from table;当再用到Oracle时查全表:select * from table;查部分字段:select ac.name,ac.id from table ac;这是我早期遇到的疑惑,,,要显示部分字段并且同事没空理你时,在网上居然没找到??是太简单了吗???默认会的那种??...原创 2020-05-14 15:52:02 · 1236 阅读 · 1 评论 -
【Oracle异常】ORA-03113: end-of-file on communication channel Process ID: 20191 Session ID
在后台用Lambda查实体的时候报的数据库错误,在网上找到这个解决方法https://www.cnblogs.com/jxldjsn/p/8108141.html;但是不适用我的场景。问题 OrderParentService orderParentService = new OrderParentService(); OrderItemService orderItemService...原创 2019-11-28 11:55:04 · 3231 阅读 · 0 评论 -
【Oracle 异常】 ORA-01861: literal does not match format string(字符串格式不匹配)
在拼接oracle查询语句的时候出现ORA-01861: literal does not match format string(字符串格式不匹配)通过打印查询语句到数据库查询发现不出问题,最后发现是datetime格式字符串要进行格式化原因如果直接使用日期格式字符串如”2019-11-0100:00:00”,没有指定格式就会报错解决方案如下CANDIDATE_DAT...原创 2019-11-22 15:27:03 · 984 阅读 · 0 评论 -
【SQL server】新增一条数据后,如何获取刚刚新增数据的ID
//新增一条数据后,如何获取刚刚新增数据的ID//新建表CREATE TABLE Test(PKID INT IDENTITY(1,1) PRIMARY KEY ,Column1 VARCHAR(50),GUID UNIQUEIDENTIFIER DEFAULT NEWID())//新增马上得到id//1.INSERT INTO Test (Column1) VALUES ('a原创 2017-12-20 15:03:55 · 11107 阅读 · 0 评论 -
【SQL server】向表里新增/删除一条字段
//向表里新增一条字段alter table Tests add Name varchar(20)//删除表里一条字段lter table Tests drop column Name转载 2017-12-20 15:04:08 · 348 阅读 · 0 评论 -
【SQL server】查询除去重复/排序
distinct使SQL查询除去重复的字段sql语句去重,distict的用法:select distinct字段名from [表名]Sql = "Select * from (Select max(可输入顺序的字段) as indexfield,要去重复字段名 From 数据表 Where 条件 Group by 要去重复字段名) as A Where 条件 order b...转载 2017-12-29 16:57:31 · 2057 阅读 · 0 评论 -
【sql server/Oracle】获取时间段
2.获取时间段--当天开始时间SELECT dateadd(ms,0,DATEADD(dd, DATEDIFF(dd,0,getdate()), 0))--当天结束时间SELECT dateadd(ms,-3,DATEADD(dd, DATEDIFF(dd,-1,getdate()), 0))--当月开始时间SELECT DATEADD(mm, DATEDIFF(mm,0,getda...原创 2018-10-23 16:30:41 · 621 阅读 · 0 评论 -
【数据库Oracle/SQL server】查询表名/表结构
1.Oracle查询所有表名select T.table_name as 表名,T.comments as 说明 from user_tab_comments T where T.comments --is not null2.Oracle查询表结构--查询所有表表结构SELECT T1.TABLE_NAME 表名,T1.COLUMN_NAME 字段名, T1...原创 2019-10-29 18:06:48 · 370 阅读 · 0 评论