oracle
文章平均质量分 59
使不得呀
这个作者很懒,什么都没留下…
展开
-
oracle常用运维脚本(查进程、查表空间、查表大小、查锁对象情况)
【代码】oracle常用运维脚本(查进程、查表空间、查表大小、查锁对象情况)原创 2023-11-19 08:58:05 · 223 阅读 · 0 评论 -
Oracle12C列表分区Auto-List Partitioning
Oracle可以将大表或索引分成若干更小、更方便管理的部分,每一部分成为一个分区,这样的表称为分区表。官方文档通常当表的大小超过2GB,或对于OLTP系统,当表的记录超过1000万时,都应考虑对表进行分区。在12.2引入的新特性中-Auto-List Partitioning可以针对新的列表值,进行自动的分区创建,从而减少了维护的复杂性。如果系统故障只影响表的一部分分区,那么只有这部分分区需要修复,可能比整个大表修复花的时间更少。如果表的一个分区由于系统故障而不能使用,那么表的其余好的分区仍然可以使用。原创 2023-11-17 15:58:04 · 318 阅读 · 0 评论 -
update与merge基本语法规则、异同点、使用场景
2、“UPDATE A SET i=(SELECT i FROM b WHERE a.id=b.id) WHERE NOT EXISTS (SELECT 1 FROM b WHERE a.id=b.id)”NOT exists部分需要额外消耗,可以用merge避免。3、修改一条已有的数据:使用update的时候不管出现什么情况都会去修改(即覆盖原有数据),而merge会去查询原有数据,如果一样的话,不会取修改,只有出现不同的内容的时候才会取修改。2、merge只需要遍历一次表,可以更新可以插入。原创 2023-11-17 11:30:33 · 889 阅读 · 0 评论 -
Oracle递归查询树形数据
prior跟子节点列sub_id放在一起,则往叶子节点方向遍历。parent_id、id两列谁放在“=”前都无所谓,关键是prior跟谁在一起。如果想查询某个节点的父节点或者子节点,一般通过表自身连接完成,但如果该节点的子节点还有很多层结构,就需要使用递归调用。但如果数据量特别大,递归的次数指数级上升,而且查询数据库的次数也指数级上升,导致程序和数据库压力剧增,查询时间特别长。如果要查父节点,这里可以用子节点的列,反之则反。sys_connect_by_path:递归路径。3、查询指定节点的根节点。原创 2023-11-09 18:04:51 · 960 阅读 · 0 评论 -
oracle数据导出exp导入imp
Oracle的exp/imp命令用于实现对数据库的导出/导入操作;exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库。原创 2023-11-08 17:48:04 · 1502 阅读 · 0 评论 -
oracle查询前几条数据的方法
在Oralce中实现select top N:由于Oracle不支持select top 语句,所以在oracle中经常是用order by 跟rownum的组合来实现select top n的查询原创 2023-11-08 17:31:37 · 2638 阅读 · 0 评论 -
Oracle获取执行计划的6种方法
Oracle获取执行计划的6种方法原创 2023-11-08 16:30:51 · 13146 阅读 · 0 评论 -
Oracle典型的表连接类型(sort merge join(SMJ) 排序-合并连接、nested loops(NL) 嵌套循环、hash join 哈希连接)
1、sort merge join(SMJ) 排序-合并连接连接过程:将两个表排序,然后再进行join①首先生产drving table【驱动表】需要的数据,然后对这些数据按照连接操作关联列进行排序;②然后生产probed table【被探查表】需要的数据,然后对这些数据按照与driving table对应的连接操作列进行排序;③最后两边已经排序的行被放在一起执行合并操作。应用场景:①排序是一个费时、费资源的操作,特别对于大表。所以SMJ通常不是一个特别有效的连接方法,但是如果driving原创 2022-02-02 12:23:50 · 2303 阅读 · 0 评论 -
Oracle执行计划-访问数据的存取方法(3种)
1、Full Table Scans,FTS(全表扫描)为实现全表扫描,oracle读取表中所有行,并检查每一行是否满足语句的where限制条件。利用多块读(一个多块读操作可以使一个I/O能读取多块数据块)的方法可以十分高效地实现全表扫描,通过设置db_block_multiblock_read_count可以设置一次I/O能读取的数据块个数,从而减少全表扫描是的I/O总块数,也就是通过预读机制将要访问的数据块预先读入内存中。只有在全表情况下才能使用多块读操作。使用全表扫描的前提:在较大的表上不建议使用原创 2022-01-29 17:23:29 · 1557 阅读 · 0 评论 -
如何判断一个字符是否含有中文汉字
如何判断一个字符是否含有中文汉字可以使用LENGTH、LENGTHB和TO_SINGLE_BYTE函数来解决这个问题。LENGTH:返回以字符为单位的长度LENGTHB:返回以字节为单位的长度TO_SINGLE_BYTE:将字符串中的多字节转化为单字节字符。–测试原数据prompt Importing table TEST…set feedback offset define offinsert into TEST (NAME)values (‘123’);insert into T原创 2020-09-10 13:00:25 · 603 阅读 · 0 评论 -
Oracle限制返回行数(Rownum)与随机返回n条记录(dbms_random)
Oracle限制返回行数(Rownum)与随机返回n条记录(dbms_random)1、Rownum限制返回的行数Rownum依次对返回的每一条数据做一个标识,使用Rowmun能限制返回的行数。例如,返回2条数据不能直接用“rownum = 2”,要使用“rownum <= 2”,因为Rownum是依次对数据做标识的,就像上学时依据考分排名一样,需要有第一名,后面才会有第二名。所以,要先...原创 2019-09-08 18:42:59 · 2991 阅读 · 0 评论 -
季度取上季度正常日期(年月日)取上季度
–季度取上季度 /思路:把原来季度值(如:201803–)转换成正常的8位正常的日期(如:20180301),再在经常的日期上进行减少3月,最后再把处理后的结果转换过来。/select to_char(last_day(add_months(to_date(substr('201803--',0,4)||lpad(substr('201803--',5,2)*3,2,'0')||'01', ...原创 2018-07-07 12:18:38 · 2519 阅读 · 0 评论 -
Oracle存储过程in、out、in out 模式参数
1、in模式参数 输入模式的参数,用于接收参数,在子程序内部,不能进行修改。默认的参数模式:in。--定义打印的存储过程CREATE OR REPLACE PROCEDURE println (str VARCHAR)ASBEGIN dbms_output.put_line(str); END;--定义测试in模式的存储过程CREATE OR REPLACE PROCEDURE p原创 2016-11-14 11:59:38 · 17709 阅读 · 4 评论 -
Oracle的存储过程
一、存储过程定义 存储过程,是命名的PL/SQL块、能够接受参数、能够被重复调用、用于某项操作、存储在数据库中(凡是create出来的东西都是存在数据库中的)的子程序。二、存储过程与函数的唯一区别 存储过程无返回值,而函数有返回值。三、存储过程实例讲解 (一)、创建存储过程CREATE PROCEDURE PRINTLN(STR VARCHAR) ASBEGIN DBMS_OUTPUT原创 2016-12-11 10:33:19 · 622 阅读 · 0 评论 -
Oracle在DOS中解锁用户、修改密码思路和具体过程
1、以管理员用户的身份登录sqlplus / as sysdba2、查看系统用户的名称和状态 select username,account_status from dba_users;3、解锁(以scott用户为例):alter user 用户名 account unlockalter user scott account unlock;4、查看结果 select username,account原创 2016-12-30 08:59:32 · 1368 阅读 · 0 评论 -
Oracle的集合运算
一、所谓的集合运算 集合运算是用来把两个或多个查询的结果集做并、交、查的集合运算,包含集合运算的查询称为复合查询。二、集合运算的几种方式1、联合运算(union) [去重 不排序] 联合运算是从两个查询返回除去重复值后的结果。2、完全联合运算(union all)[不去重 升序] 完全联合运算是从每个查询返回包括所有重复的结果。 注意:原创 2016-12-30 09:10:35 · 6166 阅读 · 0 评论 -
Oracle视图
视图:虚表,是一个命令的查询,用于改变基表的数据的显示,简化查询;访问方式与表相同,同样可使用查询语句。视图特点:简化查询(把复杂的SQL语句写成视图,别人直接用视图来查询即可,无须再写复杂的SQL语句)隐藏数据(不是把整张表的数据给别人,而是通过指定字段弄成视图,把视图给别人,让别人查视图)视图操作步骤创建视图、查看视图、修改视图、视图上执行DML操作原创 2017-01-23 17:38:10 · 407 阅读 · 0 评论 -
Oracle 序列 sequence
序列是一种用于产生唯一数字列值得数据库对象,一般使用序列自动地生成主码键或唯一键值,序列可以是升序或降序。NEXTVAL和CURRVAL伪列序列特点可以自动产生唯一数值;可被多个用户共享;典型应用是生成主键值,用于标识记录的唯一性,但不保证其值是连续的,可能是中间回滚了;使用缓存加速序列的访问速度。 创建序列、序列使用、修改序列、删除序列原创 2017-01-23 17:46:43 · 561 阅读 · 0 评论 -
Oracle 索引 index
索引是数据库对象,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O, 用来加速对表的查询速度(相当于书本的目录)。与表独立存放,但需要依附于表,是在表的基础上创建的,但由Oracle数据库自动维护的。不适合创建索引的情况1、很小数据量的表2、在查询中不常用来作为查询条件的列3、查询最终得到的结果集很大4、频繁更新的表(索引对于DML操作是有部分负面影响的)5、索引列作为表达式的一部原创 2017-01-23 17:52:57 · 579 阅读 · 0 评论 -
ORA-02266 表中的唯一 主键被启用的外键引用
1、根据提示找出外键 delete U_BASE_CONFIG; 2、通过外键名称找到对应的子表SELECT *FROM ALL_CONSTRAINTS AWHERE A.CONSTRAINT_TYPE = 'R'AND OWNER = 'FMSS'AND A.CONSTRAINT_NAME LIKE '外键名%'3、使子表U_AUTH_RES_MAP的外键约束失效...原创 2018-07-07 12:16:52 · 1254 阅读 · 0 评论 -
谈谈SQL中where 1=1和0=1的作用
一、where 1=1 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,用于拼接条件。string MySqlStr=”select * from table where 1=1 ; if(Age.Text.Lenght>0) { MySqlStr=MySqlStr+“and Age=“+“'Age.Text'“; } if(Address.Tex转载 2016-11-04 16:40:37 · 930 阅读 · 0 评论