oracle日常积累小知识
1.将Oracle中同一列的多行记录拼接成一个字符串(行转列)
wm_concat(字段)
示例:需要行转列的数据:
VM_CONCAT函数处理后(可用group by)
相同功能的函数还有LISTAGG
示例
2. 动态语句中execute immediate编译不报错,执行时报错
execute immediate ' '; or execute immediate v_sql; 中引号内和变量v_sql中不能有分号
3.查看表空间及剩余表空间大小
--查看所有表空间大小
select tablespace_name, sum(bytes) / 1024 / 1024 || 'M'
from dba_data_files
group by tablespace_name;
--已经使用的表空间大小
select tablespace_name,sum(bytes)/1024/1024 || 'M'
from dba_free_space
group by tablespace_name;
--所以使用空间可以这样计算
select a.tablespace_name, total, free, total - free || 'M' used
from (select tablespace_name, sum(bytes) / 1024 / 1024 total
from dba_data_files
where TABLESPACE_NAME = 'STAGE'
group by tablespace_name) a,
(select tablespace_name, sum(bytes) / 1024 / 1024 free
from dba_free_space
where TABLESPACE_NAME = 'STAGE'
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
--查看表所占空间大小
select T.segment_name, Sum(bytes) / 1024 / 1024 ||'M'
from User_Extents T
where T.segment_type = 'TABLE'
AND T.segment_name LIKE 'REIN%'
GROUP BY T.segment_name
4.杀进程处理锁表问题
--常用表
select * from v$locked_object
select * from dba_objects
select * from v$session
--查看被锁的表
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--查看那个用户那个进程照成死锁
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
--查看连接的进程
SELECT sid, serial#, username, osuser FROM v$session;
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;
--杀掉进程 sid,serial#
alter system kill session'210,11562';
5.不配置TNS,直连数据库
PLSQL登录时在database处填写内容:IP+端口+服务名 格式为: IP:端口号/SERVICE_NAME
例如TNS配置信息:
TEST01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.100.35)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST01)
)
)
DATABASE处填写:10.130.100.35:1521/TEST01
6.自增分区表示例
CREATE TABLE T_RES_TEST
(
CO VARCHAR2(4) NOT NULL,
POLNUM VARCHAR2(10) NOT NULL,
DTLNUM NUMBER(2) NOT NULL,
PRDCOD VARCHAR2(10) NOT NULL,
DISUDAT VARCHAR2(8),
SUBMISSION_DATE VARCHAR2(8),
COVAMT NUMBER(13,2)
)
PARTITION BY RANGE (ESTIMATE_DATE) INTERVAL(NUMTOYMINTERVAL(1,'month')) --(numtodsinterval(1,'day')) 按月分区与按天分区
SUBPARTITION BY LIST(DATA_FLAG)
SUBPARTITION TEMPLATE
(SUBPARTITION OLD_NEW_BUSINESS VALUES ('NEW_BUSINESS'),
SUBPARTITION OLD_RENEW VALUES ('RENEW'),
SUBPARTITION OLD_LAPSE_REFUND VALUES ('LAPSE_REFUND'),
SUBPARTITION OLD_TRUE_UP VALUES ('TRUE_UP'),
SUBPARTITION OLD_RESCIND_REFUND VALUES ('RESCIND_REFUND'),
SUBPARTITION OLD_CLAIM_REFUND VALUES ('CLAIM_REFUND') )
(PARTITION OLD VALUES LESS THAN (TO_DATE(' 2000-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));
set_subpartition_template 子句,作用是重新定义(或新建、清除)复合分区表的 list 或 hash 子分区模板。
执行 set_subpartition_template 操作后,表中已创建的子分区不受影响,本地、全局索引也不受影响。在此之后的分区操作(例如 add、merge 操作)将使用新的模板。
select table_name,partition_name from user_tab_partitions where table_name='T_RES_TEST'; --查看分区表信息
7.for循环嵌套插入表数据示例
DECLARE
V_MINAGE NUMBER;
V_BIGAGE NUMBER;
V_PROD VARCHAR2(20);
BEGIN
FOR I IN (SELECT * FROM AA) LOOP
V_PROD := I.PRODCUT;
V_MINAGE := I.MIN_AGE;
V_BIGAGE := I.BIG_AGE;
BEGIN
FOR J IN V_MINAGE .. V_BIGAGE LOOP
INSERT INTO BB (PRODUCT, AGE) VALUES (I.PRODCUT, J);
COMMIT;
END LOOP;
END;
END LOOP;
END;
效果显示:
AA表数据:
BB表数据:
循环调度存储过程示例:
DECLARE
V_DATE DATE;
BEGIN
FOR I IN (SELECT LAST_DAY(TO_DATE((201900 + LEVEL) || '01', 'yyyymmdd')) V_DATE
FROM DUAL
CONNECT BY LEVEL <= 10) LOOP
V_DATE := I.V_DATE;
PKG_REIN_TEST.SP_MAIN(V_DATE);
END LOOP;
END;
oracle日常积累小知识相关推荐
- python 二维数组赋值_python日常注意小知识集锦
python日常注意小知识集锦 @toc sort()和sorted() 以列表结果为例 - sort()没有结果返回,但对列表进行了排序(列表本身被改变) - sorted(),全局函数,有结果返回 ...
- 计算机日常维护小知识,计算机日常维护小常识
计算机日常维护小常识 当今社会,计算机已经成为我们日常工作和生活的必备工具,一些不经意的小错误可能会对你的计算机造成大的伤害,下面我们归纳总结了一些计算机日常保养.维护的小常识,希望能给大家提供帮助. ...
- 日常养生小知识,赶紧学起来?
现在的人们每天忙于生活,忽略了自己的健康,等到疾病找到自己.才急忙去药店买药,去健身房锻炼,殊不知这个时候已经为时过晚!下面这些养生小知识,希望能给大家带来帮助! 少吃生冷刺激的食物,多吃蔬菜水果补充 ...
- oracle 斜线出现次数,oracle一些操作小知识
1. 复制表结构和表中数据 create table emp_ly as select * from emp; 说明:注意复制表结构及数据不是sql server里面的语法select * into ...
- oracle rba一些小知识
oracle rba相当重要,与oracle恢复及redo内容,检查点进程工作机制, 有密不可分的关系与联系:理解它的构成,是进一步深入学习oracle 必备路途 摘贴网上基于rba的文章: http ...
- Oracle Weblogic 11g(10.3.4)的小知识
本周,我将为Weblogic进行许多设置和配置(我猜是开发人员). 在过去的4年中,我一直在与Weblogic合作,并且我不得不承认-与Eclipse类似-我已经开始使用它. 我曾经是Netbeans ...
- 计算机健康小知识,日常生活养生小知识
1 [养生又好吃的零食] 1.葵花子-养颜; 2.花生-能防皮肤病; 3.核桃-可秀甲; 4.大枣-预防坏血病; 5.奶酪-固齿; 6.无花果-促进血液循环; 7.南瓜子和开心果-健脑; 8.奶糖-润 ...
- 在日常办公中如何正确使用计算机,日常办公中的节能降耗小知识
节能降耗,从我做起,从点滴做起,从举手之劳做起,今天就让我们来分享下日常办公中节能的小知识吧~ 推广使用节能灯 使用电子镇流器代替电感式镇流器.以节能灯(T5T8)代替白炽灯,可节省高达70%至80% ...
- 计算机常用维护知识,电脑怎么维护?电脑日常维护小常识
电脑的稳定工作对我们来说是十分重要的,而让电脑稳定工作的前提就是正确的进行日常维护.本文就为大家介绍电脑日常维护小常识,希望能帮到大家! 工具/原料 杀毒软件 优化大师 方法/步骤 全盘杀毒: 病毒对 ...
最新文章
- python3.8.1安装教程-python3.8.1 安装
- 软件工程——理论、方法与实践 第六章
- POPUP_TO_CONFIRM_LOSS_OF_DATA
- ubuntu账号设置root_Ubuntu设置root用户,以及开启Ubuntu的ssh连接,更改apt-get源
- 学习笔记=《你不知道的JavaScript(上卷)》第三章:函数作用域和块级作用域...
- c语言语音控制游戏文献,C语言课程设计-基于C语言推箱子游戏设计-毕业论文文献.doc...
- [工程测量]工程测量个人期中复习笔记
- 这届互联网公司月饼:阿里卡哇伊,百度酷炫风,京东乾隆审美……
- 有关centos7 图形化root用户登录
- 1.ElementUI中table的sortable使用
- 江苏省计算机二级C操作题汇编
- 自学资料总结(持续更新)
- 织梦响应式酒店民宿住宿类网站织梦模板(自适应手机端)
- 软件测试自我评价模版,软件测试简历自我评价填写样本
- EditPlus最新汉化绿色版的下载、破解,以及开发java文件时的一些相关设置操作视频...
- 面向临床需求的CT图像降噪综述
- Machine Learning Practical 爱宝week2
- 长短视频平台内卷自制剧,网剧制作商耐看娱乐能“耐看”吗?
- Xnip Mac上方便好用的截图工具
- 自学软件测试1个半月上岸拿5个offer
热门文章
- linux用户和组管理的实验报告,linux用户管理任务实验报告
- 物联网+区块链溯源方案
- XC3071充电IC(耐高压,带OVP)
- Linux 下后台运行程序,查看和关闭后台运行程序
- Axure AxureRP9 密钥
- 10没有基于策略的qos_电力通信 | 基于智能光网络系统的配用电业务承载方案研究...
- 电脑英寸,怎么看自己显示器尺寸_怎么查看电脑屏幕多少英寸
- 软件体系结构的基本概念与作用
- 如何修改 linux 命令行登录界面
- C++基本功和 Design Pattern系列 Operator 下