oracle
゛Smlie。
no pain,no gain!
展开
-
navicat连接oracle TNS:listener does not currently know of service requested in connect descriptor
本地安装了oracle,如图:用navicat连接oracle时,查看一下tnsnames.ora文件里的这个数据库服务名是不是默认的,我查看发现不是ORCL而是另外的名字,我修改成另外的名字后,重新连接,就成功啦。...原创 2021-07-07 18:17:15 · 1203 阅读 · 0 评论 -
电脑分辨率高,plsql显示太小,怎么设置
新电脑分辨率比较高,装了plsql_developer后,打开发现整个界面的字体菜单非常小,如何设置?效果如下图片解决方案:右键->属性->兼容性->更改所有用户的设置->更改高DPI设置->高DPI缩放替代->勾选替代高DPI的缩放行为指定系统(在应用程序,系统,系统增强里选系统)更改完配置后的效果注意:可能由于版本原因,改了还是不行的,建议升级到高版本,亲测有效!...原创 2021-07-07 14:35:06 · 7287 阅读 · 7 评论 -
oracle listagg() within group (order by ) 分组合并成一条数据
使用条件查询 查询部门为20的员工列表-- 查询部门为20的员工列表SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20' ;使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用)SELECT T .DEPTNO, listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) namesFROM SCOTT.EMP转载 2021-01-27 19:00:55 · 3093 阅读 · 0 评论 -
oracle 生产表上有大量记录,新增带默认值字段时间长
manpower.s_salary 375w記錄,需增加栏位add_sh number(7,2) default 0 1.先排除无人使用 SELECT P.SPID,s.STATUS,s.terminal,s.machine,s.program,s.osuser,s.CLIENT_INFO,s.LOGON_TIME FROM V$SESSION S,V$ACCESS A,V$PROCESS P WHERE S.SID=A.SID AND...转载 2020-11-20 10:43:16 · 878 阅读 · 0 评论 -
Oracle分析函数-nulls first/nulls last(null放在最后或最前)
select * from criss_sales;通过rank()、dense_rank()、row_number()对记录进行全排列、分组排列取值但有时候,会遇到空值的情况,空值会影响得到的结果的正确性,如下所查。select dept_id ,sale_date ,goods_type ,sale_cnt ,rank() over (partition by dept_id order by sale_cnt desc)from cris原创 2020-09-28 13:58:15 · 6522 阅读 · 0 评论 -
oracle触发器编写
当表的数据不知道怎么进来时,通过触发器修改字段进表的数据。CREATE OR REPLACE TRIGGER "GLOGOWNER"."TRI_BD_PNLT_REC" BEFORE INSERT ON BD_PNLT_REC FOR EACH ROWDECLARE/*需求:当新增数据为频次时,即PNLT_TYP=20,就修改成在途延误,类型为1;2020-09-09 yh*/BEGIN if :NEW.PNLT_TYP = 20 then :new.PNLT_TYP原创 2020-09-27 19:10:19 · 433 阅读 · 0 评论 -
PLSQL如何调试存储过程
首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过。找到想要调试的存过,左键单击选中该存过(图中位置1),然后右键单击该存过,从弹出菜单中选择“Test”项(图中位置2)。单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参..转载 2020-07-13 14:18:23 · 1928 阅读 · 0 评论 -
Oracle添加主键、删除主键、修改主键
目录一、前提二、回归主题,主键的添加、删除等操作1.有命名主键1)有命名主键的添加2)有命名主键的删除3)有命名主键的修改2.无命名主键1)无命名主键的创建2)无命名主键的删除3)无命名主键的修改附加:user_constraints 和user_cons_columns表的作用及其联系 一、前提主键解释: &n...转载 2020-06-16 15:38:33 · 1822 阅读 · 0 评论 -
mybatis新增List(Map(String, String))数据到数据库
数据结构为List<Map<String, String>>,list中每个map为一条数据记录,需用mybatis将其插入到Oracle。mapper接口public int addDataList(@Param("list")List<Map<String, String>> list);mapper.xml<insert id="addDataList" parameterType="java.util.List">原创 2020-06-01 17:24:54 · 2756 阅读 · 3 评论 -
oracle定时任务报“并非所有变量都已经绑定”以及创建,删除等
-- 查询该存储过程的定时任务select job, next_date, next_sec, failures,what, broken from dba_jobs where what like '%PRO_BD_MO_DEG_EVAL%'; var job number;begin sys.dbms_job.submit(job => :job, what =&...原创 2020-03-03 18:22:07 · 1810 阅读 · 0 评论 -
oracle新增、删除索引以及主键修改
--根据索引名,查询表索引字段select * from user_ind_columns where index_name='索引名';--根据表名,查询一张表的索引select * from user_indexes where table_name='表名';--根据索引名,查询属于哪张表select * from all_indexes where index_name ='IN...原创 2020-03-03 17:19:28 · 10356 阅读 · 2 评论 -
oracle根据表名查询存储过程与定时任务
根据表名查询存储过程与定时任务:SELECT * FROM ALL_SOURCE where TYPE='PROCEDURE' AND TEXT LIKE '%BD_CAR_TRCK_MNG_EXP%';注意表名需要大写。根据存储过程查询定时任务:selectjob,last_date,last_sec,next_sec,total_time,interval,whatfrom...原创 2020-01-21 16:04:21 · 2554 阅读 · 0 评论 -
left join时遇到一对多时会造成数据重复
解决方案:在left join时,直接按照该字段分组给出值,再去关联就是一对一了。原创 2020-01-15 19:12:19 · 6013 阅读 · 0 评论 -
plsql查看存储过程异常日志
plsql查看存储过程异常日志:再单击 err_log,进入查询name = 这个的存储过程原创 2020-01-08 10:53:18 · 6472 阅读 · 0 评论 -
oracle查询上个月的数据(或者某个月)
select * from table_name where 时间字段 between to_date(to_char(add_months(sysdate,-1),'YYYY-MM') ||'-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and to_date(to_char(last_day(add_months(sysdate,-1)),'YYYY-MM-D...原创 2019-12-27 17:21:47 · 4644 阅读 · 0 评论 -
Oracle 临时事务表 全局临时表_global Temporary Table
所有的操作都在一个事务里,事务提交后,此表清空,特别适合做插入删除频率特别高的临时表操作,比如插入完数据就开始查询,查询完就删掉等,用完就扔! 临时表分事务级临时表和会话级临时表。 事务级临时表只对当前事务有效,通过语句:ON COMMIT DELETE ROWS 指定。 会话级临时表对当前会话有效,通过语句:ON COMMIT PRESERVE ROWS语句...原创 2019-12-26 16:14:47 · 1331 阅读 · 0 评论 -
新增、修改、删除字段sql语句
新增:-- 在test_table 表的 valid_status 字段之后,新增一个字段,设置对应的类型,长度,是否为null,默认值,注释ALTER TABLE test_table ADD COLUMN `is_staff` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否是从业人员 0否 1是' AFTER `valid_status`;修改:...原创 2019-12-25 18:06:01 · 4227 阅读 · 0 评论 -
plsql中书写一个简单的存储过程
存储过程1.plsql中创建存储过程 在“窗口列表”中右击鼠标选择“新建”>>>“程序窗口”>>>“Procedure”.创建存储过程界面输入“Name”确定存储过程的名称,“Parameters”为可选,可以在这个界面输入,也可以在后...转载 2019-12-23 09:52:28 · 1334 阅读 · 0 评论 -
PLSQL开发工具入门基本操作指引
完整的PLSQL开发工具基础操作,建议跟随练习一遍即可熟悉。目录:第1章 用PLSQL连接Oracle数据库第2章 在PLSQL中编写SQL语句并执行第3章 在PLSQL中查看数据库表结构第4章 PLSQL中SQL语句的注释方法第5章 对查询结果进行修改、插入行、删除行并保存第6章 对查询结果进行排序、过滤第7...转载 2019-12-23 09:50:25 · 378 阅读 · 0 评论 -
oracle 取字符串中的某个值
1、instr()函数的格式 (俗称:字符查找函数)格式一:instr( string1, string2 ) // instr(源字符串, 目标字符串)格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符串, 目标字符串, 起始位置, 匹配序号)解析:string2 的值要在st...原创 2019-12-17 14:10:50 · 2597 阅读 · 0 评论 -
oracle to_number转换无效数字的解决方案(含/)
近期需要写一个存储过程,从一张表里定期取数,中间遇到一个问题,原本应该为数字的字段,却类型设置成了varchar2类型了,所以需要从我这边做个转换了。to_number是将字符串转化为数字,但是如果该字段中包含一些其他非字符串字符,就会报 invalid number的异常。如下:SELECT to_number('20/') from dual;下面给出一个解决方案:SELECT t...原创 2019-12-16 11:15:33 · 6491 阅读 · 0 评论 -
Oracle中小数点前0不显示
在Oracle数据库中会碰到当小数小于0的时候,小数点前的0不显示,但并非所有遇到小数小于0的时候都不显示而是有特定条件1、当小数单独显示例:select 0.123456 from dual显示结果为:0.1234562、当小数与字符串进行拼接例:select 0.123456||‘小数’ from dual显示结果为:.123456小数出现此类情况的原因是Oracle中存在隐形转...转载 2019-10-11 15:30:50 · 1234 阅读 · 0 评论 -
trunc()用法和add_months()
TRUNC函数用于对值进行截断。用法有两种:1:TRUNC(NUMBER)表示截断数字;2:TRUNC(date)表示截断日期。(1)截断数字:格式:TRUNC(n1,n2),n1表示被截断的数字,n2表示要截断到那一位。n2可以是负数,表示截断小数点前。注意,TRUNC截断不是四舍五入。select TRUNC(15.79) from dual;TRUNC(15.79)----...原创 2019-10-11 15:49:54 · 2489 阅读 · 0 评论 -
TRUNC函数
TRUNC函数用于对值进行截断。用法有两种:TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期。–获取上月第一天:select TRUNC(add_months(SYSDATE,-1),'MM') from dual --2019-07-07 00:00:00===================================================...原创 2019-08-20 10:11:13 · 10445 阅读 · 0 评论 -
oracle中merge into using 的用法解析
merge into的形式:MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...)WHEN MATCHED THEN [UPDATE sql]WHEN NOT MATCHED THEN...转载 2019-06-27 15:40:46 · 10944 阅读 · 1 评论 -
Oracle中DBMS_JOB.SUBMIT的用法说明demo及详解
用法DEMO: DBMS_JOB.SUBMIT(:jobno,//job号 'your_procedure;',//要执行的过程 trunc(sysdate)+1/24,//下次执行时间 ...原创 2019-10-11 15:20:45 · 15106 阅读 · 1 评论 -
PLSQL创建oracle 定时任务运行存储过程
1、创建任务执行的存储过程,如名称为YxtestJob,向测试表中插入数据create or replace procedure YxtestJob isbegin insert into ztest(name,createdate) values('test',sysdate);end;2、定时器对应的DBMS_Jobs文件夹,右键新建(new)3、创建任务(1)、在w...原创 2019-10-11 15:09:13 · 1237 阅读 · 0 评论 -
oracle创建存储过程中ID不重复且不为空
oracle :在创建一个新增的存储过程时,遇到一个问题,主键ID需要不重复且不为空。f_get_bd_id(1)这个函数可以获取不同的值。select f_get_bd_id(1) from dual;在网上查,似乎没有查到有关资料,不过确实有用,一位大佬指点的,记录下来。...原创 2019-06-28 15:17:17 · 814 阅读 · 0 评论 -
存储过程详解
存储过程详解 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据...转载 2019-07-03 18:44:33 · 969 阅读 · 0 评论 -
每天进步一点点( 存储过程、排序生成并列序号、查询上个月数据)
create or replace procedure PRO_BD_MO_DEG_EVAL asbegin --yh --卡班供应商考核-月度评分表insert into BD_MO_DEG_EVAL( id, CO_NM, CHK_TYP, YR_MO, CAR_FULL_ADEQ, CAR_TLNS, ...原创 2019-07-03 17:32:43 · 324 阅读 · 0 评论 -
oracle一个简单的新增存储过程
因业务需要,学习了一波存储过程。下面来记录一下一个简单新增的存储过程。存储过程的创建语法:create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型; 变量2 类型;Begin Select count(*) into 变量1 from 表A where列名=param1; ...原创 2019-07-03 17:23:04 · 1517 阅读 · 0 评论 -
存储过程中的when others then 和 raise 代表什么?
EXCEPTION when others then rollback; dbms_output.put_line('code:' || sqlcode); dbms_output.put_line('errm:' || sqlerrm);rais...原创 2019-06-27 16:29:20 · 5666 阅读 · 0 评论 -
Oracle中row_number()、rank()、dense_rank() 的区别
row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名,与row_number函数不同的是,rank函数考虑到了over子句中...原创 2019-07-02 09:23:59 · 195 阅读 · 0 评论 -
ORACLE函数大全
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-h...转载 2019-05-20 11:09:02 · 887 阅读 · 0 评论 -
oracle查询上个月数据(次月某日查询上月数据)
查询今天数据:SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD')查询昨天数据:SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSD...原创 2019-06-05 18:42:25 · 10613 阅读 · 0 评论 -
oracle常用函数使用大全 (Oracle除法)
一、运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != < <= like between is null i...转载 2019-06-05 17:08:21 · 5530 阅读 · 0 评论 -
OVER(PARTITION BY)函数介绍
转自:https://www.cnblogs.com/lcngu/p/5335170.html问题场景 最近在项目中遇到了对每一个类型进行求和并且求该类型所占的比例,当时考虑求出每种类型的和,并在java中分别对每一种类型的和与总和相除求出所占比例。后来,想到这样有点麻烦,并且项目中持久层使用的是iBatis框架,所有考虑从SQL方面进行入手来简化这个问题。 后来SQL的解决方法...转载 2019-05-21 13:37:01 · 66203 阅读 · 3 评论 -
oracle数据库备份及还原(删除恢复、同步数据)
oracle 数据库复制表----------------------------------------------...转载 2019-07-04 09:46:44 · 1825 阅读 · 0 评论 -
Oracle存储过程总结
Oracle存储过程总结 1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1(para1 varchar2,para2 out varchar2,para3 in out varchar2) asv_name varchar2(20);begin v_name :...原创 2019-07-10 15:26:06 · 286 阅读 · 0 评论 -
SQL: coalesce()函数---返回第一个非空值
①用途:将空值替换成其他值返回第一个非空值②表达式:COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。③举例:SELECT COALESCE(NULL,NU...原创 2019-10-09 15:50:26 · 3274 阅读 · 0 评论