-
附SQL如下select tableLead.pk_psndoc,tableLead.begindate,tableLead.enddate,tableLead.pk_psndoc_sub,CASE when (tableLead.pk_psndoc!=hi_psndoc_ctrt.pk_psndoc and hi_psndoc_ctrt.pk_psndoc is not null) then null else tableLead.p end pk_psndoc_subnextfrom (&n
-
思考:Oracle某表数据发生变化自动更新其他表内容创建触发器处理CREATE OR REPLACE TRIGGER FRIST_TRIGGER --触发器名称FRIST_TRIGGERAFTER DELETE or INSERT or UPDATE --时间after 触发的事件DELETE 即:进行删除后触发o
-
oracle数据库实例 一直unknown 启动不了Linux环境下,Oracle数据库启动一直提示没得监听,启动不起来。1、首先连接oraclesu - oracle2、查看监听状态执行这个lsnrctl status会看到图中两个 实例 都是 ready中, 说明都正常。不正常的情况是 unknown, 如下图:那么接下来试着手动启动,按照下面命令挨个执行su - oracleexport ORACLE_SID=orclsqlplus / as sysdbastartupquit3、最后再试
-
问题现象:数据库ip,端口都是通的,账号密码等全部正确,但是连接数据库的时候提示:“ORA-12545”错误。解决措施:经过排查,错误原因在于从记事本复制数据库IP的时候,数据库IP上有个回车键导致。从新手工输入数据库IP后就能正常连接了。
-
如果正确建立了定时任务,但是没有执行,可以考虑是不是因为ORACLE默认的定时任务执行范围设置太小了:1、查看执行的定时任务的job num 是多少。select * from user_jobs 2、然后再查看一下执行任务的job 的临界值是多少。select value from v$parameter where name like '%job_queue_processes%' ,、3、修改临界值,比如100。alter system set job
-
Oracle定时任务,定时去调存储过程执行存储过程的sql--1、每个人助记码更新为每个人最新工作记录所属组织的助记码UPDATE bd_psndoc SET bd_psndoc.mnecode = (select HR_PSNMNECODE.mnecode from HR_PSNMNECODE where HR_PSNMNECODE.pk_psndoc = bd_psndoc.pk_psndoc)WHERE EXISTS(SELECT 1 FROM HR_PSNMNECODE WHE
-
根据开始日期、结束日期查询时间段内每一天
-
1、 -- 查询你执行update 语句之前的数据 精确到什么时间(可将查询结果导出,然后清空后导入也能实现回滚的需求) select * from 表名 as of timestamp to_timestamp('2017-07-21 17:16:38', 'yyyy-mm-dd hh24:mi:ss');2、 -- 开启可移动数据命令,执行完就可以回滚数据 alter table 表名 enab
-
在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节,但默认还是早期版本的参数。 以下为解决数据库字段4000字符限制办法。 1、以dba 身份进入系统修改参数MAX_STRING_SIZE 为EXTENDED(一定要先设置参数,再进行后续操作): ALTER SYSTEM SET MAX
-
日期转化为字符串用to_char(日期,'yyyy-mm-dd hh24:mi:ss');用to_date(日期,'yyyy-mm-dd hh24:mi:ss')会变成月、日、年例:select to_char(add_months(sysdate,-1),'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
-
某人某列批量更新为该人另外一列数据1、单表简单更新update test set E=C 2、单表加工更新update test set E='胖' where C >=66;update test set E='瘦' where C <663、两个表联合更新UPDATE testtwo SET testtwo.TC = (select TEST.E from TEST where TEST.B = testtwo.TA
-
主表A,副表B、C、D。当主表A与副表B、C、D存在一对多关系、切B表2个值、C表3个值、D表3个值时候会出现2*3*3=18条记录。如果我们想要的结果是:以人员各个子表记录最多的子表作为总的条数(上面的例子显示3条记录)。可按照如下处理:SQL如下:selecttablea.AID,tablea.ANAME,tablea.BDEPT,tableB.AID as aidb,tableB.ANAME as ANAMEb,tableB.cJIBIE,tableC.AID as aidc,tableC
-
查询某个表(如证书表),里面一个人一个证书就是一行数据,一个人可能有多个证书(即多行)。需要显示为某个人所有证书显示在一行,用标识符隔开。如下:要得结果为:SQL语句如下:SELECT pk_psndoc, LISTAGG( to_char(glbdef1), '&') WITHIN GROUP(ORDER BY glbdef1) AS zhengShu, LISTAGG( to_char(glbdef2), '&') WI
-
如果我们忘记了数据库服务器密码,可以通过如下方式修改:(1)运行窗口输入 cmd–右键–以管理员身份运行(2)输入 sqlplus(3)输入sys as sysdba以DBA角色进入(4)连接成功后,输入“select username from dba_users; ”查看用户列表(5)修改某一个用户密码、用户口令alter user 用户名 identified by 新密码;· 1以system
-
两个参数间的关系:sessions=1.1*processes+5目前总结的语句,在查看数据的连接情况很有用,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来。1Sql代码1.select count(*) fromv$process select count(*) from v$process where program=‘Oracle.EXE(SHAD)’; --当前的数据库连接数2Sql代码1.select value