Database
Jalen备忘录
这个作者很懒,什么都没留下…
展开
-
记本地开发环境连接oracle查询过慢问题
本地访问oracle和线上访问oracle速度差异原因排查及解决参考:https://jalen.site/%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%BF%9E%E6%8E%A5oracle%E6%9F%A5%E8%AF%A2%E8%BF%87%E6%85%A2%E9%97%AE%E9%A2%98/测试脚本:if __name__ == '__main__': from sqlalchemy.engine impor.原创 2021-11-30 10:00:51 · 2219 阅读 · 0 评论 -
ORA-30926: unable to get a stable set of rows in the source tables
select * from tb_test;insert into tb_test(CODE, TEXT) values (1, 'test');--这里正常merge into tb_test tusing (select 1 code,'test' text from dual union all select 1 code,'test' text from dual) son (t.code = s.code)when matched thenupdate set t..转载 2021-08-26 10:06:42 · 543 阅读 · 0 评论 -
记录一次oracle 19c null比较引发的问题
-- A='', B='', A和B会转为null,比较结果xxx:ccc, A既不等于B,也不不等于B, 处于不可比较的一种状态with t1 as (select '' a, '' b from dual )select t1.*, case when t1.a=t1.b then 'aaa' when t1.a!=t1.b then 'bbb' else 'ccc' end xxx from t1;-- A='', B='1', A会转为null, 比较结果xxx:ccc, 虽然B有值,但仍.转载 2021-06-18 12:23:44 · 319 阅读 · 0 评论 -
MYSQL:ERROR 1146 (42S02): Table ‘xxx‘ doesn‘t exist一种情况
原因:表名大小写问题MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:数据库名与表名是严格区分大小写的; 表的别名是严格区分大小写的; 列名与列的别名在所有的情况下均是忽略大小写的; 变量名也是严格区分大小写的...转载 2021-06-10 13:24:01 · 5864 阅读 · 1 评论 -
Server returns invalid timezone. Go to ‘Advanced‘ tab and...
Pycharm配置mysql database时遇到的问题转载 2021-06-01 09:12:46 · 89 阅读 · 0 评论 -
oracle对两组数据求差集、并集、交集
-- 简单交、并、差集只需要使用intersect、union、minus关键字即可-- 这里是对用户给予的两个数组(比如excel里的某两列)结合使用oracle的伪列去做交、并、差集运算-- 实际情况对于比较两个数组有更多选择,这里仅展示oracle sql方式(当然这里使用oracle有些笨,但是某些场景下还是可以使用的,比如excle里某列和db里某列数据的比较)with t_origin as (select 1000 || ',' || .转载 2021-04-27 11:35:13 · 1173 阅读 · 0 评论 -
python db end-of-file记录
1.异常信息sqlalchemy.exc.OperationalError: (cx_Oracle.OperationalError) ORA-03113: end-of-file on communication channelsqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-03150: end-of-file on communication channel for database link2.涉及的moduleFl.转载 2021-03-30 11:40:36 · 508 阅读 · 0 评论 -
oracle一列拆多列
1.效果:2.SQL:with t1 as (select 'a=1&b=2&c=3&d=4&e=5' as params from dual)select id, SUBSTR(data, 1, INSTR(data, '=') - 1) AS name, SUBSTR(data, INSTR(data, '=') + 1) AS valuefrom (select LEVEL AS id, REGEXP_SUBSTR.转载 2020-12-08 15:40:57 · 1385 阅读 · 0 评论 -
改进数据库性能:SQL基础(1)
SQL基础(部分转自网络,仅供参考)1. 关系型和非关系型数据库,如oracle和redis (1)查看oracle版本: select * from v$version; select version from v$instance; select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle'; (2) 查看db时区: SELECT dbtimezone FRO.原创 2020-08-21 12:42:23 · 195 阅读 · 0 评论 -
改进数据库性能:SQL查询优化(3)
主要记录一下查看执行计划的方式,有些转自网上,仅供参考1.set autotrace: 不实际执行,执行计划不一定准确, sqlplus查看 usage: set autot[race] {off | on | trace[only]} [exp[pain]] [stat[istics]] (1)on 和 trace的区别是后者不产生sql的输出结果; (2)exp 和 stat前者只查看执行计划,后者只查看统计信息2. explain pl.原创 2020-08-20 17:42:33 · 197 阅读 · 0 评论 -
改进数据库性能:SQL查询优化(2)
oracle性能调优-转自《Oracle Database 11g数据库管理艺术》第19章(改进数据库性能:SQL查询优化)1. 高效的where子句选择性原则--查询所返回的行数占全部行数的百分比,低百分比对应高选择性,高百分比对应低选择性。例子:select * from employee where no=221342 and city='DALLAS';no=221342子句需要的IO较少,因为列no是主键,具有非常高的选择性(行只有1个),优化程序通过查看索引统计数据为这两个列中的每.原创 2020-08-19 16:36:02 · 238 阅读 · 0 评论 -
改进数据库性能:SQL查询优化(1)
oracle性能调优-转自《Oracle Database 11g数据库管理艺术》第19章(改进数据库i你能:SQL查询优化)性能调优是DBA花费时间最多的一个领域,主要包括:编写高效的SQL语句、分配合适的计算资源,以及分析系统中的等待事件和资源争用情况。Oracle建议在设计数据库时遵循以下步骤:1. 正确地设计应用程序;(应用程序最初阶段就考虑性能调优为‘主动调优’,反之为‘被动调优’)2. 调优应用程序的SQL代码;3. 调优内存;4. 调优IO;5. 调优争用和其他问题;用.转载 2020-08-19 14:06:56 · 287 阅读 · 0 评论 -
Host 'xxxxxxx' is not allowed to connect to this MySQL server
1. 登录mysqlmysql -u root -p2. 切换到mysql数据库USE mysql;SELECT user,host FROM user;3. 授权GRANT ALL PRIVILEGES ON *.* TO root@my_ip IDENTIFIED BY ‘root_password‘ WITH GRANT OPTION;...转载 2019-11-21 16:28:23 · 169 阅读 · 0 评论 -
oracle根据条件统计各组记录数量
1. 根据具体条件统计这批数据落到每组的数量select to_char(TIMESTAMP, 'yyyy-mm-dd') column1, column2, column3, count(CASE WHEN DURATION<30*60 THEN 1 END) less30, count(CASE WHEN DURATION>=30*60 and ...转载 2019-09-16 17:08:25 · 1697 阅读 · 0 评论 -
oracle取带有小数的记录
select * from user_tab where user_column<>round(user_column,1);round函数测试:select round(100.1, 0) from dual; -- 100select round(100.5, 0) from dual; -- 101select round(100.9, 0) from dual;...原创 2019-09-06 13:45:51 · 1539 阅读 · 0 评论 -
oracle merge into(一条语句执行更新或插入)
MERGE INTO user_tab1 t1USING (select to_char(TIMESTAMP, 'yyyy-mm-dd') daily, CLUSTERNAME, RESULT, count(*) usage from user_tab2 where to_char(TIMESTAMP, 'yyyy-mm-dd') in ('2019-09-03')...转载 2019-09-03 16:50:50 · 961 阅读 · 0 评论 -
oracle.sql.TIMESTAMP类型转成固定格式的date类型
今天做Excel导出,需要从数据库导出一个时间类型的字段create_time然后就遇到一个oracle的时间类型转换的问题,不尽兴转换的话,导出的时间类似于这样oracle.sql.TIMESTAMP@57c8f82b在数据库中,create_time这个字段的类型如下:因为我们是SSM框架,所以从映射文件做一下转换此时我们执行这条sql就会看原创 2017-09-18 11:29:46 · 1767 阅读 · 0 评论 -
JPA结合Hibernate定义主键
1. 先看一段代码,下面是员工信息表对应的实体,注意id的定义:import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.hibernate.annotations.GenericGenerator;import javax.persistence.En转载 2017-10-13 14:53:31 · 503 阅读 · 0 评论 -
oracle分组取前5条数据
语句如下: select * from (select t.*, (Row_number() over(partition by 分组字段 order by 排序字段)) rn from 表名字 t) where rn 示例:select * from (select t.*,原创 2017-12-13 09:59:04 · 9963 阅读 · 2 评论 -
No valid Oracle clients found. You need at least one 64-bit client properly configured.
1. 问题:安装了toad for oracle12.12后,当打开软件时显示该错误。2. 原因:没有安装64位oracle客户端。3. 解决办法:(1)下载安装toad for oracle 12.12 (其他版本也可以)(2)打开后,你会看到如下错误提示。(3)下载 instant client 12.2(4)解压到任意位置,如C:\转载 2018-01-15 13:51:51 · 11218 阅读 · 2 评论 -
oracle数据库字段降精度
说明:以合同评审表中的合同金额字段为修改对象,原金额类型是以万元为单位的number(16,6),现需要降低精度到小数点后两位,即修改后以元为单位,为number(16,2),执行操作如下表名字: tbl_requisition_contract列名字: contract_amount/*修改原字段名name为name_tmp*/alter table tbl_requisiti转载 2018-01-10 11:29:07 · 994 阅读 · 0 评论 -
oracle拆分某个字段
表:uf_wzlb (物资类别)表:uf_wzzl (物资种类)表:uf_wzlb_wzzl (物资类别和物资种类关联表,物资类别与物资种类为一对多关系)如,物资类别编码为WZLB-201805100004该物资类别绑定了多个物资种类,绑定的物资种类编码为WZZL-201805100044,WZZL-201805100015,WZZL-2018051000转载 2018-05-10 15:45:36 · 3561 阅读 · 0 评论 -
mysql严格模式
严格模式说明参考:http://blog.sina.com.cn/s/blog_53b13d950100x2ok.htmlset @@sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';set @@global.sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_...转载 2018-06-21 09:38:51 · 731 阅读 · 0 评论 -
The used select statements have a different number of columns解决办法
1. 问题原因 这个异常出现在两个表使用union all进行合并时遇到的,表A存在的字段数量和表B最初是一致的,包括字段名字和类型都是一致,使用union all连接无异常;后来由于需要在表B添加了一个新的字段,导致两张表的字段在数量上不一致,出现了异常; 2. 解决办法在使用union all进行合并操作时,使用null as "xxx"解决,如下,由之前的SQL语句...转载 2018-08-03 17:28:05 · 9981 阅读 · 5 评论 -
oracle错误提示编码问题解决记录(PL/SQL编辑器执行脚本错误提示乱码)
错误原因:oracle服务器编码与客户端编码不一致解决办法:修改客户端编码(也可以修改服务器端编码,但是服务器一般都是一个局域网所有人共同连接的,私自修改会给他人带来不便)解决步骤:(1)查询服务器端编码select * from nls_database_parameters(2)查看官方提供的文档地址:https://docs.oracle.com/cd/A848...转载 2018-10-08 14:41:24 · 823 阅读 · 0 评论 -
统计某指定时间段内每周每月数据,含分组数据为0
1. 按月:(1) 简单分组查询-- 分组后查询数据: 仅1月份6条,2月份因为不存在记录,没有显示SELECT to_char(r.sys_created_on, 'yyyy-mm') AS create_time, count(*) AS quantity FROM table_r r,table_g g WHERE r.assignment_group = g.sys_id...转载 2019-02-18 14:38:17 · 1664 阅读 · 0 评论 -
MySQL 8 1251 client does no support authentic...
1. 以windows为例,cmd进入命令行,cd进入mysql安装后的bin目录,登陆mysql2. 查看用户信息select host,user,plugin,authentication_string from mysql.user;3. 更新密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_...转载 2019-03-16 15:34:24 · 374 阅读 · 0 评论 -
将一个表中某个字段更新(copy)到另一张表
场景:两张表有一个共有的字段关联,比如说A表,B表都有一个关联的id,现在想根据id,将A表的name字段更新到B表的name字段上SQL:update tab1set val = (select val from tab2 where tab1.id = tab2.id)where exists(select 1 from tab2 wh...转载 2019-06-12 12:05:11 · 2440 阅读 · 0 评论 -
oracle列varchar转clob
SELECT * FROM tablename;ALTER TABLE tablename RENAME COLUMN CONDITION TO condition_backup; --修改列名ALTER TABLE tablename ADD condition clob NULL; --新增列UPDATE tablename set condition=condition_backu...转载 2019-07-30 11:02:58 · 400 阅读 · 0 评论 -
数据库范式(wiki)
数据库范式第一范式: 1NFwiki: 第一正规化(1NF)是资料库正规化所使用的正规形式。第一正规化是为了要排除 重复群 的出现,所采用的方法是要求资料库的每个列的值域都是由原子值组成;每个栏位的值都只能是单一值。1971年埃德加·科德提出了第一正规化。要点:原子性反例:重复组,缺乏唯一标识 (如1个字段存储多个值,或1个值分成多个字段存储)正例:表字段拆分第二范式: 2N...转载 2019-08-08 11:26:34 · 406 阅读 · 0 评论 -
oracle call vs exec[ute]
BothEXEC[ute] SP()andCALL SP()could be used in SQL*Plus to execute an SP. BTW, you can also useBEGIN SP(); END;But there are some differences. CALLis Oracle SQL and should work everywhere. ...转载 2019-08-19 15:08:04 · 132 阅读 · 0 评论 -
数据库开发规范
本文转载自“V型知识库”,用于以后写sql借鉴,来源一. 数据库建表规范(http://www.vxzsk.com/523.html)1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是, 0 表示否),此规则同样适用于 odps 建表。说明: 任何字段如果为非负数,必须是 unsigned。(和j转载 2017-09-14 11:32:55 · 2583 阅读 · 0 评论