oracle中date数据类型与timestamp数据类型的转换
可以使用cast强制转换的函数实现oracle中date数据类型与timestamp数据类型的转换SQL> select hiredate from emp;HIREDATE &...
oracle中分析函数获取之前最近的不为null的值
oracle通过分析函数获取当前行之前的不为空的值使用last_value,但是要注明ignore nulls 比如有数据如下:RN ADDRESS ARRIVAL_TIME USERID ------ ---------- ------------------- --------- 1 ...
oracle分析函数之ratio_to_report
ratio_to_report主要完成对百分比的计算,语法为ratio_to_report(exp) over()也就是根据over窗口函数的作用区间,求出作用区间中的单个值在整个区间的总值的比重比如要求scott用户下emp表中每个员工的工资占本部门的比重select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp;需要...
利用正则表达式将一列分离为多列
regexp_substr函数的一般语法为REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)String为要判断的字符串pattern是正则表达式position要判断的起始位置occurrence标示第几次出现modifier匹配的模式('i'不区分大小写进行检索;'c'区分大小写进行检索)比如使用正则表达式将'slot=63;subslot=2;port=8...
oracle对于时间间隔的处理
oracle在处理日期函数的时候有下面两种表示方法:1、select to_char((sysdate - interval '1' month),'yyyy-mm-dd') from dual;2、select add_months(sysdate,-1) from dual;第一种方法使用的是相隔...
decode实现行转列的查询
--是这样一个问题,数据库中的字段有 year, month, supermarkname,salesNumber.四个字段。如何编写SQL语句使得查询出来的结果如下year supermarkName 1月 2月 &nbs...
for循环中的计数器
在oracle的for循环中,计数器的类型是pls_integer,可以取正整数和负整数,取值范围为-2147483648 to 2147483647超过这个范围就会报错DECLARE I NUMBER; T NUMBER; S NUMBER;&nb...
oracle层次查询
oracle的层次查询语法最基本和重要的就是select...start with...connect by...prior比如在员工表emp中,根据上下级关系进行排序select * from empstart with empno='7839'connect by prior empno=mgr查询结果...
将表名作为绑定变量的非法操作
在动态sql中使用绑定变量,代码如下 v_sql :='insert into remark(code,name) select code,name from :xn'; ...
动态sql查询结果多行的处理情况
CREATE OR REPLACE PROCEDURE DATACODEIS cursor cur_table is select table_name from tab_name; v_tablename varchar2(20); v_count number(5); v_sql varchar2(1000); no_table ex...
caip
--玩法:--红球是从1-33中任选6个--蓝球是从1-16中任选1个drop table shuangseqiu;create table shuangseqiu(qishu varchar2(8),red1 number(2),red2 number(2),red3 number(2),red4 number(2),red5 number(2),red6 ...
oracle分区表
创建oracle分区表主要是应对大数量的,当一个表的数据量超过2G时,一般考虑使用分区表也有一些情况,需要动态创建分区表例如按照时间推移按照天动态的建立分区表,或者按照月动态的建立分区表在11G中可以使用下面的...
plsql developer分步调试
在数据库开发中,经常会遇到需要分步调试的情况来定位问题的所在当使用普通用户进行调试时,默认情况下是会报错的是因为需要给这个用户赋予debug connect session的权限使用sys用户执行下面的语句grant debu...
oralce中汉字转为拼音首字母的函数(转)
CREATE OR REPLACE FUNCTION "SCOTT"."F_PINYIN"(P_NAME IN VARCHAR2) RETURN VARCHAR2 ASV_COMPARE VARCHAR2(100);V_RETURN VARCHAR2(4000);FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 ASBEGIN ...
关于plsql表的一段代码
DECLARE l_salaries DBMS_SQL.number_table; l_total INTEGER := 0;BEGIN UPDATE plch_employees &nbs...
执行计划需要关注的部分执行计划中需要关注的点
简单分析执行计划的话,首先需要关注的是查询行数量和逻辑读的比例一般情况下认为平均每行的逻辑读应该在5个以下,越少越好在未加索引的时候,查询100行的执行计划如下查询100行的逻辑读为17975,平均每行为179.75...
sys_connect_by_path函数的使用
Sys_connect_by_path的语法为Sys_connect_by_path(column,char)主要是将根节点到当前节点的层次路径排列出来,排列的是column指定的列,char为在连接字符串select e.*,level,sys_connect_by_path(ename,'-->') from...
oracle中的层次查询
比如查询scott用户下的emp表,将所有职员安装上下属关系列出select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO,level from empstart with empno=7839connect by prior empno=mgrorder by le...
内置函数to_single_byte
在很多软件系统中,并没有对非法输入进行处理;将半角数值输入为全角数值的情况很常见。在存储的时候,一个半角数字占1个byte,但是一个全角数字需要占3个byte因为全角的原因,原本定义的字段长度很不容易出...
追忆一道数据库开发的面试题
还清晰的记着当时绞尽脑汁想了很多的办法,用了union以及求和,很长的一条sql,还是觉得实现不了原来是用到group byrollup的函数实现select nvl(to_char(id),'小计') as id,sum(XCLB) from hl83 group by rol...