![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle
paocai_2019
坚持,再坚持,一点点。。。。。
展开
-
oracle如何查询字段中是英文名称,如投保人是外国人
oracle如何查询字段中是英文名称,如投保人是外国人原创 2023-01-18 17:28:38 · 542 阅读 · 1 评论 -
oracle 取月初第一天
oracle取月初第一天原创 2022-11-02 15:11:50 · 2201 阅读 · 0 评论 -
oracle中建立与删除主键,建立与删除索引
建立主键:alter table x add constraint PK_x primary key (C_PLY_NO1, C_PLY_NO2) using index ;删除主键:删除时将索引一起删除alter table x drop constraint PK_x cascade drop index;原创 2022-04-08 14:18:23 · 1576 阅读 · 0 评论 -
oralce 取月底的时间
取月底的时间,最喜欢第4种selectTO_CHAR(last_day(add_months(sysdate,-1)), 'yyyy-mm-dd')||' 23:59:59' a1 ,TO_DATE(TO_CHAR(last_day(add_months(sysdate,-1)), 'yyyy-mm-dd'), 'yyyy-mm-dd ') + 0.99999 a2 ,last_day(add_months(sysdate,-1)) + 0.99999 a3,trunc(last_day(ad.原创 2022-04-07 15:03:33 · 502 阅读 · 0 评论 -
oracle中取时间今天最后一秒,或取三年前的日期
--得到当天凌晨0点0分0秒的日期select trunc(sysdate) from dual;-- 得到这天的最后一秒select trunc(sysdate) + 0.99999 from dual;-- 得到小时的具体数值select trunc(sysdate) + 1/24 from dual;select trunc(sysdate) + 7/24 from dual;......原创 2022-03-22 13:37:00 · 2645 阅读 · 0 评论 -
数据库中小数点前丢了0
--结果:0.41349,会自动用空格将前面精度不足的位数补齐,另外,,会使用千分位补齐selectto_char(123123.413488888,'999,999,990.99999')asaafromdual;--结果:0.41349,结果正常selectto_char(0.413488888,'fm999,999,990.99999')asaafromdual;--结果不正常,丢失了小数点前的0selectto_char(0.413488888,'fm99...原创 2022-01-14 18:53:43 · 1302 阅读 · 0 评论 -
将多条记录用于sql的查询字段,变为加引号的字符串
将aaa bbb cccc加引号。查找模式为正则表达式首部替换操作:^替换为"尾部替换操作:$替换为",转换后:原创 2021-07-23 14:53:18 · 226 阅读 · 0 评论 -
oracle中增加索引SQL,解决全表扫描
–增加索引的SQLCREATE INDEX TMP_PLYCRGO_c_ply_noON TMP_PLYCRGO (c_ply_no);原创 2021-03-04 13:43:26 · 400 阅读 · 1 评论 -
oracle 取月份的第一天
select trunc(sysdate,‘year’) from dual; --截取到年(本年的第一天)2021-1-1select trunc(sysdate,‘q’) from dual; --截取到季度(本季度的第一天)2021-01-1select trunc(sysdate,‘month’) from dual; --截取到月(本月的第一天)2021-02-1...原创 2021-02-25 15:01:44 · 5593 阅读 · 0 评论 -
按一定条件排序
按一定条件排序,如下:当某一字段的值,为A是1,为B是2,其他时为4,按此顺序排序。order by decode(a.cpostionid,'C0001',1,'M0001',2,'BDM',3,4)原创 2020-12-15 16:12:22 · 133 阅读 · 0 评论 -
2020-11-30oralce日期上加一个月及nvl在日期类型上的使用
日期上加一个月其中ADD_MONTHS(d,n)表示在日期后加一个月,select add_months(sysdate,12) from dual 加一年select add_months(sysdate,1) from dual 加一月select sysdate+1 from dual 加一天select sysdate+1/24 from dual 加一小时nvl在日期类型上的使用当为空时,取默认值, to_date('2020-01-01', 'yyyy-mm-dd'.原创 2020-11-30 14:24:46 · 893 阅读 · 0 评论 -
oracle的sql使用CASE WHEN ,可以在where条件中使用噢
1.CASE WHEN 表达式有两种形式--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END2.CASE WHEN 在语句中不同位置的用法SELECT中使用 CASE WHEN 用法SELECT grade, C.原创 2020-11-20 18:18:37 · 13187 阅读 · 0 评论 -
在oraclexe中新建用户
1.先建立用户,student,密码也是student,使用的表空间是users。create user student identified by student default tablespace users;2.给student赋予DBA权限 ,grant dba to student;3.撤销该用户的其它表空间权限,否则会默认导入到SYSTEM表空间,而在XE版本中SYSTEM表空间是无法扩展的。revoke unlimited tablespace from student;4.给s原创 2020-11-18 15:09:01 · 715 阅读 · 0 评论 -
使用sysdba登录oracle数据库,报权限不足解决方法
因为之前修改用户system的用户名和密码,所以使用/as sysdba 以系统最高权限人员账号登录sqlplus时会权限不足。解决方法:用修改后的密码,sys用户,以DBA的方式登录pl/sql执行grant sysdba to system; 这个命令。成功后就可以在sqlplus中,使用/as sysdba 登录了。备注:修改密码的命令 1.alter user XXX identified by ****; 将XXX用户的密码重置为***;赋权的命令:grant...原创 2020-11-18 14:45:02 · 4620 阅读 · 0 评论 -
sqlplus连接数据库oracle报 12541TNS: 无监听程序
从安装完oracle xe后一直没有使用,今天用pl/sql连接一下,发现报如下的错:一直找不到原因。在命令行输入:tnsping xe也报错:后经过研究:检查了tns,原来是监听一直启的有问题,虽然在服务中看着是启动的。原来是之前改了机器名字,但是监听中的名字没有改:C:\Users\Administrator>lsnrctl,进入监听,LSNRCTL> status正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC).原创 2020-11-18 14:27:32 · 1470 阅读 · 0 评论 -
当在数据库表中查询结果为0, 即没有查询到结果时,希望显示为0
当在数据库表中查询不到指标数据时,希望显示为0的话:select case (SELECTcount(1) FROM prpseadailycheck pcwhere pc.checkcode = 'BDCBL')when 0 then 0 else (SELECT pc.grade FROM prp...原创 2020-04-25 00:59:49 · 4243 阅读 · 0 评论 -
oracle中取字段的时间转换为日期
select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss ') from dual; --mi表示的是当前的分 正确select to_char(sysdate, 'yyyy-MM-dd HH24:mm:ss ') from dual; --mm表示的当前的月份select to_char(sysdate, ...原创 2020-04-25 00:11:05 · 2106 阅读 · 0 评论 -
SQL语句中将字符串前后加入巧用引号与逗号
字符串加入引号,及引号与逗号,两个引号表示前引号SELECT ''''||'aaaa'||''',' value FROM dual;原创 2020-03-10 00:53:56 · 3023 阅读 · 0 评论 -
将字符串变为结果集
将字符串变为结果集我们需要使用REGEXP_SUBSTR和REGEXP_COUNT两个ORACLE函数function REGEXP_SUBSTR(string, pattern, position, occurrence, modifier)string:需要进行正则处理的字符串pattern:进行匹配的正则表达式position:起始位置,从第几个字符开始正则表达式匹配(默认为1)...原创 2020-02-12 00:52:09 · 884 阅读 · 0 评论 -
取多个字段后,找出最大值
select (SPHSGETMAXBRANCHDATE(t1.pid, ‘2020-01-01’) ) 获取机构变更最大日期,(SPHSGETMAXDEPTDATE(t1.pid, ‘2020-01-01’) ) 获取部门变更最大日期,(SPHSGETMAXPOSTDATE(t1.pid, ‘2020-01-01’) ) 职务的变更时间,greate...原创 2019-12-20 15:09:28 · 1508 阅读 · 0 评论 -
多个IP地址的数据库连接tnsnames.ora或者应用连接oracle
多个IP地址的数据库连接tnsnames.ora或者应用连接oracle字段含义如下:实例字段含义如下:ADDRESS_LIST 表示该客户机要经由多种协议与一台或多台服务器连接。在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连。PROTOCOL 指明要连接使用的协议。SERVICE_NAME “SERVICE_NAME”就是“Global Databas...原创 2019-12-13 13:31:05 · 3952 阅读 · 0 评论 -
查询oracle表中包含中文字段名的表
length()获取的是字符长度,lengthb() 获取的是字节长度。在不同的数据库,因为字符集的不同,LENGTHB得到的值可能会不一样。如ZHS16GBK采用 2 个byte位来定义一个汉字。而在UTF8,采用 3 个byte。这里的oracle数据库为UTF-8编码格式。SELECT * FROM all_tab_columns where length(column_name)<...原创 2019-11-25 14:44:37 · 4655 阅读 · 0 评论 -
Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名
Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comme...原创 2019-11-25 14:20:30 · 737 阅读 · 0 评论 -
oracle中lag和lead函数的使用,取出上一条记录的字段
lag和lead函数可以在同一次查询中取出同一字段的前N行数据(lag)和后N行数据(lead)。这种字段可以使用对相同表的表连接来实现,不过使用lag和lead函数具有更高的效率。SELECT *FROM (select pid,sp.Psnname,sp.Upbid,sp.Updid,sp.startdate,sp.enddate,lag(enddate, 1, null) o...原创 2019-11-04 15:36:30 · 1501 阅读 · 0 评论 -
oracle索引管理,查询,删除,创建
–查看所有索引SELECT A.TABLE_NAME,A.TABLE_OWNER,A.INDEX_NAME,A.INDEX_TYPE,A.STATUSFROM USER_INDEXES A;–删除索引drop index 索引名;–创建索引create index 索引名 on 表名(列名);–创建组合索引create index 索引名 on 表名(列名1,列名2);...原创 2019-11-04 09:02:18 · 791 阅读 · 0 评论 -
按日期所在的月份统计数据
按月份统计数据取日期的月份函数to_char(t.Dcoldate,‘mm’)SELECT to_char(t.Dcoldate,‘mm’),sum(jixiao) FROM A t WHERE t.pid = ‘88888’ and t.Dcoldate>date’2019-01-01’ group by to_char(t.Dcoldate,‘mm’) ;...原创 2019-10-28 14:15:11 · 2015 阅读 · 0 评论 -
修改oracle数据库密码
修改oracle数据库密码1.通过sqlalter user testuser identified by 1234562.通过界面修改后点击应用原创 2019-10-25 09:37:05 · 726 阅读 · 0 评论 -
Oracle查询第m到第n条数据,用于报表过大的导出
报表产生的过大,一次导出上8万条,就不能导出了。第一种方法:嵌套select这种方法是最优方法,因为该方法进行排序后取值,所以能够保证两次取值都会取出相同的值。(不知道,是按什么排序的,验证后,数据是正确的)最里面的那层select是提取满足要求的所有数据,然后第二层select用于选取前n条数据,最外面的select语句用于选取第m条之后的数据。#Oracle从目标表中查询第m条到第n条...原创 2019-10-11 16:32:50 · 827 阅读 · 0 评论 -
CAST()函数和CONVERT()函数
SELECT CAST(‘9.0’ AS decimal) 结果:9AST()函数和CONVERT()函数:CAST()函数可以将某种数据类型的表达式转化为另一种数据类型CONVERT()函数也可以将制定的数据类型转换为另一种数据类型CAST()函数和CONVERT()函数语法:select cast(表达式 as 数据类型)select convert(数据类型[(长度)],表达式...原创 2019-09-29 16:00:15 · 870 阅读 · 0 评论 -
oracle授权查询
–授予权限grant insert,select,update,delete on table to user;grant dba,resource to ytpbl;grant create any sequence to ytpbl;–撤销revokeREVOKE CONNECT, RESOURCE FROM 用户名;REVOKE SELECT ON 表名 FROM 用户名;R...原创 2019-09-24 15:46:24 · 32049 阅读 · 9 评论 -
返回类型为字符串,使用NVL()函数
返回类型为字符串,使用NVL()函数SELECT nvl(t2.codetypename,‘没找到’) aa/* INTO szchannelname*/FROM sl_codetypedef t2WHERE t2.codetype = ‘CHANNEL’ AND t2.codetypeno = ‘98’;这样的话,无法返回结果,如图:将引用改为:nvl(select from)外面...原创 2019-09-17 16:12:41 · 1688 阅读 · 0 评论