数据库
尚云峰
不断学习!
展开
-
如何判断oracle的列是否是空值
一般常规通过 xx is null判断,如何多列不方便,可以看他的NUM_DISTINCT 值是否为0来判断; select distinct aa.COLUMN_NAME from all_tab_columns aa where aa.TABLE_NAME in ('XXXXX' ) and aa.NUM_DISTINCT = 0; ...原创 2021-09-02 15:45:39 · 1769 阅读 · 0 评论 -
oracle 中文,汉字判断
问题1:判断是否中文, 也就是是否全半角方式1.asciistr(p_name) like ‘%%’方式2.length(a)!=lengthb(b)备注:转半角函数:to_single_byte转全角函数:TO_MULTI_BYTE比如:select length(‘哈.哈’),lengthb(‘哈.哈’) from dual;问题2:判断 姓名,注意,姓名是汉字,不是中文!有3种方式1.替换所有标点字母数字,剩下的就是汉字(不推荐)2.直接使用正则(有缺陷)--这种只对部分原创 2021-04-25 22:26:06 · 4343 阅读 · 0 评论 -
oracle根据指定分隔符分割数据字符
关于根据指定分隔符获取数据,这个之前介绍过了https://blog.csdn.net/u011165335/article/details/82832294今天再重新简单的说下,群里面看到这个问题对方想把冒号之后的数字相加,得到一个结果--方法1: 这里仅根据:为分隔符,判断提取数字,需要2次加工select 'Comm Price:94;demo001:1000;demo 002:500;price02:214' from dual ;select sum(part2) from原创 2021-03-16 00:10:18 · 2772 阅读 · 0 评论 -
oracle动态求和分组
问题描述:这里有很多条记录,其中需要按照数量字段,进行合并合并规则:按照合并行>=6的合并;合并之后的记录,有新的ID-- 创建表drop table yusydemo;create table yusydemo( id number(18) primary key, prodID varchar2(4), money number(8), prodcount int);-- 创建序列create sequence seq原创 2021-03-10 00:13:18 · 879 阅读 · 2 评论 -
oracle查询锁参考
–获取锁的基本信息select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_i原创 2020-10-16 16:16:30 · 312 阅读 · 0 评论 -
hive支持update、delete
什么是ACID,为什么要用它?ACID代表数据库事务的四个特性:原子性(手术完全成功或失败,它没有离开部分数据),一致性(一旦应用程序执行一个操作,操作的结果是可见的在每个后续操作),隔离(由一个用户一个不完整的操作不会引起意想不到的副作用为其他用户),和持久性(一个操作完成后它将被保留下来即使面对机器或系统故障)。长期以来,人们一直期望数据库系统将这些特性作为其事务功能的一部分。在Hive 0.13之前,原子性、一致性和持久性都是在分区级别上提供的。可以通过打开一个可用的锁定机制(ZooKeeper或原创 2020-08-05 18:27:18 · 3698 阅读 · 0 评论 -
springboot简单整合hive以及DG如何连接Hive
环境:hive需要提前安装好;简单整合1.依赖,注意解决冲突.这里可以使用IDEA的maven help插件或者Diagrams查看冲突<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/...原创 2020-04-13 00:15:19 · 1601 阅读 · 0 评论 -
oracle创建表规范参考
总体步骤:1.建表2.cxbx授权给指定账户3.指定用户创建同义词和对角色授权4.创建行级触发器5.记录触发器--cxbx建表01create table cxbx.test_plan_info( id_test_plan_info varchar2(32), -- 主键 id+表名 plan_code varchar2(20)...原创 2020-04-10 21:17:41 · 772 阅读 · 0 评论 -
datagrip 中文字段乱码,别名乱码
DataGrip 默认是 Consolas 字体,在 2018.3.4 版本之前是支持中文别名(或者中文字段)的在2019版本之后Consolas 字体不支持中文字段、需要换做其他的字体。可以设置如下字体是MonospacedMingLiu-Extb等等(选择完,有些字体需要重启测试)这里设置,只会影响查询列表的字体,不会影响主页面;设置后,中文显示正常注意:没有立即生效,重启...原创 2020-01-16 10:54:23 · 10888 阅读 · 3 评论 -
oracle in非常规写法
正常情况下.in里面接的是一个完整的子查询,这里如果嵌入外表的话:CBO底层会做查询转换环境:12C-1.in的情况select * from dept a where a.dname in (select b.dname from dept b where a.deptno<>b.deptno) 这里的含义:2表关联后,找a.dname=b.dname的数据;此时子查...原创 2019-12-02 23:56:44 · 338 阅读 · 0 评论 -
oracle 子查询走hash内连接的问题
环境: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production “CORE 11.2.0.1.0 Production” TNS for 64-bit Windows: Version 11.2.0.1.0 -...原创 2018-08-26 12:28:02 · 1609 阅读 · 0 评论 -
oracle forall的使用,看看有哪几种insert
环境:11gcreate table emp_copyasselect empno, ename, job, hiredate from emp where 1 = 2; 1.整体--简写declare cursor c_emps is select empno, ename, job, hiredate from emp; type emp_a...原创 2018-09-19 21:42:12 · 2164 阅读 · 1 评论 -
oracle根据分隔符获取字符串
环境:11g-- +表示对多个非,分组select regexp_substr('annn,bnn哈,cqwe,d哈哈', '[^][,]+', 1, 1) t1, regexp_substr('annn,bnn哈,cqwe,d哈哈', '[^][,]+', 1, 2) t2, regexp_substr('annn,bnn哈,cqwe,d哈哈',...原创 2018-09-24 21:26:39 · 10671 阅读 · 0 评论 -
oracle connect by优化小探
前一篇介绍了connect by的用法https://blog.csdn.net/u011165335/article/details/82822224这里在看看如何优化:环境跟上一篇的一样:11g-- 表结构drop table menu;create table menu( mid varchar2(64) not null, parent_id varchar2(64) ...原创 2018-09-23 21:40:39 · 4485 阅读 · 0 评论 -
oracle connect by用法以及with递归
环境:11g准备:在oracle中start with connect by (prior) 用来对树形结构的数据进行查询。其中start with conditon 给出的是数据搜索范围, connect by后面给出了递归查询的条件;涉及的伪列及函数:– connect_by_isleaf 伪列– connect_by_root()获取根节点– sys_connect_by_pat...原创 2018-09-23 15:02:45 · 2973 阅读 · 0 评论 -
oracle md5如何调用
环境:11gcreate table emp_copyasselect empno, ename, job, hiredate from emp where 1 = 2; 1.整体--简写declare cursor c_emps is select empno, ename, job, hiredate from emp; type emp_...原创 2018-09-13 00:08:31 · 952 阅读 · 0 评论 -
针对百万级数据库优化方案文章的疑问
https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/72875054#commentsedit 上面所谓的宝典,一定都是对的吗? 记住:oracle的优化是对CBO的深刻理解! 不经测试的结论不要相信 下面按顺序回答上面对于的说明:(针对oracle)1.建不建索引,要跟据实际情况来定,而不是有order by就加索引 2.用了...原创 2018-09-05 21:26:43 · 138 阅读 · 0 评论 -
oracle plsql块或者储存过程中如何开启并发
有人说,在plsql中是无法开发并发更新的,实际是可以的declare...begin execute immediate 'alter session force parallel dml 8'; --更新操作 ... commit; --必须先commit,否则会报 ora-12841 execute immediate 'alter session disable para...原创 2018-08-28 21:08:16 · 3631 阅读 · 0 评论 -
oracle 时区
select dbtimezone from dual;select sessiontimezone from dual;select TZ_OFFSET('PST') from dual;--时区名select * from v$timezone_names;--转换select new_time(current_date,'PST','EST') from dual;...原创 2018-09-25 20:36:51 · 5979 阅读 · 0 评论 -
oracle connect by的cardinality预估基数问题
转载自老熊的三分地:http://www.laoxiong.net/category/oracle/oraperf本文不讲述connect by 如何使用,只是提出在使用树形查询时需要考虑的一个有关于性能方面的问题。这里提到的问题,主要是Oracle优化器在评估connect by 语句的cardinality时,存在的缺陷,下面将举例说明。在这个例子中所使用的表,是一个真实的生产系统中的表...转载 2018-09-23 00:44:07 · 434 阅读 · 0 评论 -
Oracle 11g中的IO Calibrate(automatic DOP: skipped because of IO calibrate statistics are missing)
Oracle 11g有两个对于性能方面的测试工具,一个就是RAT(Real Application Test),另一个就是IO校准(Calibrate IO)。RAT是一种负载重演组件,当进行系统软硬件升级的时候,我们一个很关注的问题是:此次变化能否提升系统性能、能提升多少,会不会有新的瓶颈。这个在过去是不能实现的,只能够在升级之后通过实践去发现。但是RAT可以捕获实际系统负载情况,将其在新环境下...原创 2018-10-31 21:17:37 · 885 阅读 · 0 评论 -
oracle spfile和pfile
1.参数文件的定义、作用 oracle数据库通过一系列参数来对数据库进行配置。这些参数是以键-值对的形式来表 示的,如: MAXLOGFILES=50 BACKGROUND_DUMP_DEST=C:/DUMP 其中,等号左边是参数名,右边是对应的参数的值,值的类型有多种,典型的如数字和 字符串. 参数文件就是存储这些参数的地方,oracle在启动时会从参数文件中读取相关的配置。原创 2018-02-01 23:11:46 · 479 阅读 · 0 评论 -
oracle 的keep用法及partition
语法:根据col3分组,col2排序,col1为 col2排序后的第一个/最后一个最大/最小值min | max(column1) keep(dense_rank first | last order by column2)over (partion by column3)--keep 用法drop table yu_test;create table yu_tes原创 2018-02-12 21:24:47 · 560 阅读 · 0 评论 -
oracle转pgsql的建表函数
这里简单的转换了一下oracle到pgsql的建表转换,主键做了转换,外键,索引,触发器等还没有转。。。。。create or replace function long_to_char(p_owner varchar2, p_tab varchar2, cid in number) return varchar2 as uval varchar2(32767);begin se...原创 2019-09-07 12:34:42 · 1918 阅读 · 0 评论 -
oracle11g sql monitor
sql monitor对于单条sql而言,可以查看真实的执行计划和一些执行信息;相比于使用dbms_xplan.display_cursor查看真实执行计划而言,执行计划少了谓词信息;有点伤。。。。select /*+ monitor*/ * from emp e,dept dwhere e.deptno=d.deptnoand e.deptno=90;--默认获取当前监控的sql...原创 2019-09-07 12:22:58 · 241 阅读 · 0 评论 -
postgresql/pgsql如何抛出具体哪一行错误
1.如何抛出具体哪一行的错误,在oracle里面,可以用dbms_utility.format_error_backtrace打印具体的错误行号,在pgsql里面,怎么打印呢?do$$declarev_num int ;v_text1 text;v_text2 text;begin v_num:=1/0;exception when others then get ...原创 2019-08-21 22:32:55 · 2843 阅读 · 0 评论 -
postgresql学习-自定义函数
在pg里面,只有function1.删除函数 函数名+参数签名drop FUNCTION if exists HelloWorld2(varchar);2.CREATE OR REPLACE FUNCTION 不允许你修改一个现有函数的返回类型。– 要做这些事情,你必须删除并重新创建函数。–LANGUAGE plpgsql yelowbick只有过程,跟pgsql刚好相反–入...原创 2019-08-20 23:29:31 · 12149 阅读 · 4 评论 -
postgresql学习-常用函数
--跟java一样,默认取整select 1/4;--小数怎么取,这里可以隐私转换select round(1/4::numeric,2);--获取select round(cast(1 as numeric)/cast(4 as numeric),2);--4.to_charselect to_char(CURRENT_DATE,'yyyy-mm-dd');select to...原创 2019-08-20 23:01:51 · 283 阅读 · 0 评论 -
oracle字符串多行分割
这里要实现的是多行字符串根据指定分隔符分割如aa,bb,cchh,jj展示为:aa,bb,cc aaaa,bb,cc bbaa,bb,cc cchh,jj hhhh,jj jj目前,没有找到那种直接获取的方法,只能先创建tab获取,如果有更好的方法,麻烦告知哈如何获取tab1.使用嵌套表2.使用pip row这里分享的是第一种方式...原创 2019-07-06 21:22:08 · 1580 阅读 · 0 评论 -
oracle push_subq简析
此hint是针对自查询的hint,其含义是让cbo尽早的把未展开的子查询进行执行; 一般情况下,默认未no_push_subq,即未展开的子查询肯定是在最后一步执行的; 但是如果此子查询能够过滤大量数据,这个时候让cbo提前执行这个未展开的子查询,从而有效的筛选数据哈; 结合no_unnest使用;create table dept_tempasselect * from dept w...原创 2018-08-19 13:38:51 · 1602 阅读 · 0 评论 -
oracle cardinality简析
此hint的作用 向优化器提供对某个查询语句的整体或部分的预测基数值,并通过参考该基数值来为查询语句制定执行计划。如果在该提示中没有指定表的名称,则该基数值将被视为从该查询语句所获得的最终结果行数。 针对单个目标表而言: 生效路径: 全表扫; 索引范围扫,索引全扫描fs,索快速扫描ffscreate index emp_ename_idx on emp(ename);--全表扫...原创 2018-08-19 13:02:11 · 3866 阅读 · 1 评论 -
oracle的Rollup/cube/grouping sets
如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。 如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进原创 2018-05-08 21:36:04 · 181 阅读 · 0 评论 -
关于oracle 函数的Deterministic
在建立函数索引的时候,自定义的函数需要加Deterministic确定性函数的性能好处是如果使用相同的输入调用函数两次,Oracle可以记住第一个调用的结果因此避免在第二次执行时再次调用。但是该功能直到10g Release 2才被真正实施。环境11g测试1:create or replace package deter_body is v_glo_cou原创 2018-05-01 22:56:37 · 3258 阅读 · 0 评论 -
oracle物化视图
官方文档:https://docs.oracle.com/cd/E11882_01/server.112/e10706/repmview.htm#REPLN3351.1 概念物化视图 [1] (Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图。它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进...原创 2018-04-15 21:17:46 · 933 阅读 · 0 评论 -
sqlplus连接数据库的几种方式
1. sqlplus / as sysdba 操作系统认证,不需要数据库服务器启动listener,也不需要数据库服务器处于可用状态。比如我们想要启动数据库就可以用这种方式进入 sqlplus,然后通过startup命令来启动。2. sqlplus username/password 连接本机数据库,不需要数据库服务器的listener进程,但是由于需要用户名密码转载 2018-04-08 00:17:13 · 4568 阅读 · 0 评论 -
oracle hint
http://blog.csdn.net/u012232730/article/details/73604176 一、提示(Hint)概述1为什么引入Hint?Hint是Oracle数据库中很有特色的一个功能,是很多DBA优化中经常采用的一个手段。那为什么Oracle会考虑引入优化器呢?基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻DBA的负担。但有时它也聪明...转载 2018-03-17 15:01:52 · 342 阅读 · 0 评论 -
函数索引跟普通索引谁的效率高
Substr和 'xxx%'谁的查询效率好函数索引与普通索引谁的效率高原创 2018-02-08 21:11:07 · 1603 阅读 · 0 评论 -
ORA-04068/ ORA-04061
准备知识:PL/SQL块分为:命名块和匿名块。◆匿名块:以declare或begin开始,每次执行匿名块都要通过客户端工具将其发送给Oracle,经过语法分析、编译然后执行。◆命名块:具有名称的PL/SQL块,这些命名块被存储在Oracle中,编译一次,以后只可调用就可多次执行。如:存储过程、存储函数、包、触发器等、存储过程:无返回值;存储函数:有返回值;包:可容纳原创 2017-12-26 18:31:30 · 5599 阅读 · 0 评论 -
Dbms_LOB存储二进制,文本数据
一:存储二进制数据 参考: https://www.2cto.com/database/201202/118146.html例: 1.使用管理员账户登录 2.创建一个目录比如: F:\b_lob_dir\111.png3.指定映射目录 create or replace directory lobFiles as ‘F:\b_lob_dir’; 4.将目录的读写权限授予scott用户 g原创 2017-12-24 22:45:11 · 651 阅读 · 0 评论 -
包的初始化
例: 需求: 使用一个索引表存存放所有的dept记录,包括新增的使用begin初始化这个索引表使用cursor的包变量create orreplace package insert_pkgis --定义一个游标变量,可以不要return cursor c_dept_info return dept%rowtype; --索引原创 2017-12-22 21:50:14 · 490 阅读 · 0 评论