Oracle与数据处理
文章平均质量分 51
俊不见高堂明镜
这个作者很懒,什么都没留下…
展开
-
Kettle连接人大金仓KingbaseES数据库
Kettle连接Kingbase数据库原创 2023-02-09 16:16:46 · 5716 阅读 · 1 评论 -
Oracle触发器设置
Oracle触发器配置原创 2022-08-30 17:52:14 · 524 阅读 · 0 评论 -
Kettle使用服务名连接Oracle数据库,不知道SID
经常遇到Kettle连接Oracle数据库抽取数据,但是对方只给了IP、端口和服务名称,没有实例名SID,配置连接时一直提示ORA-12505:TNS:listener does not currently know of SID given in connect…的错误。解决方案如下:在主机名称前面加斜杠。示例://192.168.1.12在数据库名称前面加斜杠。示例:/service_name1测试即可。...原创 2022-03-09 17:04:25 · 1117 阅读 · 1 评论 -
Oracle密码忘记重置方式
安装完数据库很久不用常常会忘记其密码,碰到这种情况不要动不动就重装数据库,按其下方法修改即可 忘记sys,system用户的密码: 使用ORAPWD.EXE工具修改密码:在开始菜单点击‘运行’,输入‘cmd’,打开命令提示窗口,输入如下命令: orapwd file=d:\oracle\product\10.2.0\db_1\database\pwdctcsys.ora passw原创 2017-03-16 14:41:41 · 4515 阅读 · 0 评论 -
PLSQL对Oracle数据库进行导入导出
使用PLSQL的工具–>导出表,将数据库中的数据及表结构等都导出成dmp文件,再导入目标数据库中是很简单的,但是若存在CLOB字段,则会发现,存在该字段的数据表无法成功导入,查看日志为直接跳过了,或者是表空间不存在等问题,但是其他的表均可以导入成功,解决方案如下: 方案一:先执行建表的表结构文件,再执行导数据的dmp文件,即先将存在CLOB字段的表在目标库中新建,再导入数据即可。 方案二:不推荐原创 2016-12-14 15:43:27 · 724 阅读 · 0 评论 -
Oracle内等距查询
数据表内有列分数字段,分数0~600不等,现在需要统计各个分段内的人数,分段距离为50分计算一次,计算结果类似:0~50 10050~100 100100~150 100150~200 100**** 方案一: 一般写法为根据各个分数值进行ca原创 2016-12-06 14:29:04 · 513 阅读 · 0 评论 -
Oracle数据库查询表结构、字段及注释信息
create or replace view sys.user_col_comments(table_name, column_name, comments)asselect o.name, c.name, co.comment$from sys."_CURRENT_EDITION_OBJ" o, sys.col$ c, sys.com$ cowhere o.owner# = useren原创 2016-11-02 10:20:03 · 5701 阅读 · 0 评论 -
PowerDesigner相关操作
1.PowerDesigner设计表时把字段name添加到注释(comment)里面 PowerDesigner->Tools->Execute Commands->Edit/Run Scripts 执行如下脚本:'如果comment为空,则填入name;如果不为空,则保留不变。Option Explicit ValidationMode = True InteractiveMode原创 2016-11-02 14:09:04 · 363 阅读 · 0 评论 -
Kettle使用资源库情况下批量更新邮件组件相关信息
Kettle邮件组件有许多配置项是可复用的,报错在资源库内相关表内,使用如下SQL可以查询出具体信息:select * from r_job t1 join r_jobentry t2 on t1.id_job = t2.id_job join r_jobentry_attribute t3 on t1.id_job = t3.id_job and t2.id_jo原创 2016-11-03 10:24:24 · 800 阅读 · 0 评论 -
Kettle的命令行参数使用
Kettle每日定时运行,有个参数是定时取出,若需要做数据回溯,则需要手动修改参数值,不太方便,便着手从JOB运行时赋值命令行参数来做,以达到定时运行不需要输入参数,需要数据回溯时输入相应参数即可,如下。1.JOB及转换流程: 2.运行: 。原创 2016-09-19 10:25:59 · 6576 阅读 · 0 评论 -
公交线路方向处理(Oracle行转列+排序)
1、根据公交站点、线路站点、线路等表关联计算出相关数据。insert into biz_bus_station_directselect ls.line_no line_no, bb.line_name line_name, t1.line_direct line_direct, s.station_id station_id, s.stat原创 2016-08-26 14:31:43 · 1079 阅读 · 0 评论 -
Oracle的行转列
关于Oracle的行转列,示例如下: 源表数据:select 1 id,'A' name,'1' jidu,1100 xiaoshou from dualunionselect 1 id,'A' name,'2' jidu,1200 xiaoshou from dualunionselect 1 id,'A' name,'3' jidu,1300 xiaoshou from dualun原创 2016-08-22 09:50:30 · 520 阅读 · 0 评论 -
Oracle单个字符串拆分函数
create or replace function fn_gzk_zfjq(p_value varchar2) return ty_str_split pipelined is v_str varchar2(2000);begin --字符串截取为字符 for i in 1..length(p_value) loop v_str:=substr(p_value,原创 2017-01-12 11:51:00 · 1820 阅读 · 0 评论 -
Oracle字符拆分函数
create or replace function strsplit(p_value varchar2, p_split varchar2 := ',') return ty_str_split pipelined is v_idx integer; v_str varchar2(3000原创 2017-01-12 12:40:02 · 576 阅读 · 0 评论 -
Oracle列字符拆分
原表数据如下:create table test_20170523 asselect 1 id,'abc' name from dualunion allselect 2 id,'de' name from dualunion allselect 3 id,'fg' name from dual;ID NAME 1 abc 2 de 3 fg需求如下: ID NAM原创 2017-05-23 09:53:52 · 382 阅读 · 0 评论 -
Oracle字符串字符截取成多行
Oracle给定字符串,按照目标字符个数截取成多行,给定字符串:’翻(窗a)出来(又)出来’,实现SQL:with x as (select '翻(窗a)出来(又)出来' name from dual)select regexp_substr(x.name, '.{1,3}', y.lv,1 ) split_chr from x, (select level lv f原创 2018-01-16 17:55:51 · 1843 阅读 · 0 评论 -
Oracle的列转行和对流数据查询SQL脚本
需求:对发件地和目的地的数据进行对流情况查询,要求如下:某 发件地A --> 发件地B 所在行的下一行数据为:发件地B-->发件地A的返回数据,即对流情况的两条数据。目前已有的数据结构情为: 想要达到的结果为: 根据已有目录结构及维度表,进行关联得到如下结构:create table test_20180104 asselect d1.domain_name 发原创 2018-01-04 17:36:50 · 305 阅读 · 0 评论 -
Oracle生成日期维度表
因业务需求,需要生成当前年份的年、季度、月份、天等维度表数据。 效果如下: 创建表结构:-- Create tablecreate table DIM_YEAR( year_id NUMBER not null, year_name VARCHAR2(40), start_time DATE, end_time DATE, day_num原创 2017-08-24 09:45:11 · 5739 阅读 · 1 评论 -
PowerDesigner导出表结构到Excel表
PD菜单栏中,依次点击 Tools ->Excute Commands->Edit/Run Script..'******************************************************************************'* File: pdm2excel.txt'* Title: pdm export to excel'* Purpose原创 2017-08-07 09:55:41 · 4201 阅读 · 0 评论 -
Oracle常用SQL-2
--创建表空间指定数据文件CREATE TABLESPACE ETL_DW DATAFILE '+DATADG' SIZE 30000M AUTOEXTEND ON NEXT 2048M;--给表空间增加数据文件ALTER TABLESPACE ETL_DW ADD DATAFILE'+DATADG' SIZE 30000M;1、查看表空间的名称及大小select t.tablespace原创 2017-08-21 10:49:13 · 266 阅读 · 0 评论 -
Oracle杀死死锁
SELECT /*+ rule */lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username User_name,o.owner,o.object_name,o.object_type,s.sid,s.serial#FROM v$locked_object l, dba_objects o, v$session sWHERE原创 2017-07-31 15:24:44 · 1326 阅读 · 0 评论 -
oracle常用SQL语句
–系统变量path c:\windows\system32;D:\Program Files\MySQL\MySQL Server 5.5\bin;%JAVA_HOME%\bin;D:\Program Files\TortoiseSVN\bin;%M2_HOME%\bin;–给表加字段 alter table T_JDZH_WTBD add WORKFLOW_INSTANCE_ID number原创 2015-10-30 19:18:10 · 544 阅读 · 0 评论 -
Oracle字符串拆分
原始字符串:a;b;c;d;e 拆分结果: a b c d e 根据 ‘;’进行拆分。处理SQL:with t as (select 'a;b;c;d;e' as str from dual) select level, str, regexp_substr(t.str, '[^;]+', 1, level) str_single fr原创 2017-05-22 10:23:07 · 400 阅读 · 0 评论 -
Oracle递归查询(目录结构查询)
参考:http://www.cnblogs.com/walk-the-Line/p/4882866.html使用Kettle资源库数据表操作:select ml from (select sys_connect_by_path(t.directory_name, '/') ml from R_DIRECTORY t start with t.id_dire原创 2017-05-08 14:22:30 · 1553 阅读 · 0 评论 -
用户行为统计分析页面停留时间计算
select * from T_LOG_DETAIL_WEB_TEMP_TIME;--用户登录,userid不为空select * from T_LOG_DETAIL_WEB_TEMP_TIME where userid is not null order by userid,accesstime;--给RN赋值select userid,accesstime,rank() over(parti原创 2016-07-12 15:49:13 · 5882 阅读 · 0 评论 -
Oracle行转列+排序
--1.删除临时表drop table biz_bus_station_direct_0711;--2.将站点数据等放入临时表create table biz_bus_station_direct_0711 asselect ls.line_no line_no, bb.line_name line_name, t1.line_direct line_direct原创 2016-07-12 10:05:05 · 2607 阅读 · 0 评论 -
Oracle分组后计数
selectto_char(t.djrq,'yyyy') Year,to_char(t.djrq,'mm') Month,to_char(t.djrq,'dd') Day,substr(t.jg,1,6) AreaCode,sum(case when t.stable in ('jh','jhbl') then 1 else 0 end) TotalMarriageCount,原创 2015-12-24 17:04:19 · 2266 阅读 · 0 评论 -
Kettle使用资源库日志信息配置
-- Create tablecreate table ETL_LOG( id VARCHAR2(32), jobname VARCHAR2(100), source VARCHAR2(100), target VARCHAR2(100), datadescription VARCH原创 2015-12-21 13:50:23 · 1889 阅读 · 0 评论 -
Kettle通过JS判断空值
if (!HPZL1 && typeof(HPZL1)!="undefined" && HPZL1!=0){ var HPZL1 = '1';}原创 2016-01-04 14:17:21 · 6294 阅读 · 0 评论 -
MySQL列转行
select 'BX',sum(t.waterid) Cumulative_Idle_Time_Summary from userhouse t where t.userid = '2e79da51-a9dd-4f08-ad30-80aca24d97d3'AND t.houseid = '1'UNION allselect 'BY',sum(t.electid) from use原创 2015-12-16 16:53:14 · 538 阅读 · 0 评论 -
Kettle日志表设置
Kettle的日志记录需要自己配置数据表进行存储,需要如下3个表: – Create table create table LOG_ENTRY ( id_batch INTEGER, channel_id VARCHAR2(255), log_date DATE, transname VARCHAR2(255),原创 2015-10-30 10:39:10 · 2135 阅读 · 0 评论 -
Oracle查询补全
在写一个查询语句,需要查询给定姓名的十二星座人数,但是有的人十二星座并不是全都有,所以返回值可能存在不足十二星座的情况,下面这个查询把不存在的加上了, 并且赋值为0. 正常的查询显示结果为: 1 摩羯座 105 2 射手座 118 3 金牛座 89 4 牡羊座 104 5 天蝎座 136 6 水瓶座 89 7 处女座 124 8 双鱼座 92 9原创 2015-09-16 15:37:30 · 958 阅读 · 0 评论 -
Oracle中的NVL函数
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参原创 2015-09-14 11:26:16 · 511 阅读 · 0 评论 -
使用Kettle抽取MongoDB数据到Oracle
使用Kettle抽取MongoDB的数据到Oracle数据等关系型数据库中还是比较简单的,因为Mongo中存储的都是json格式的数据,所以取出数据后按照json的格式拆分出来就行啦。整体流程图:1.获取MongoDB数据,各个选项卡填入对应的值即可:2.字段选择,获取到的字段并不是都需要的,最好加上字段选择,只选择需要的字段3.表输出,即可连接数据库,按照对应的映原创 2015-08-19 15:55:55 · 13562 阅读 · 0 评论 -
Oracle代码段的使用
经常需要写一些存储过程,但是存储过程往往是把很多处理逻辑放在一个存储过程中,如果需要的单独测试其中某一个部分的代码是否可以行得通的话,使用数据库代码段无疑是最方便快捷的方式,特别是针对那些需要动态变量和需要事先声明变量的存储过程中,毕竟没人会把存储过程所有逻辑处理编写完成后才进行测试。现在把之前用到的一段代码段贴出来:declare v_huji_chenyuan c原创 2015-08-24 22:09:57 · 1326 阅读 · 0 评论 -
Oracle根据身份证号码判断性别
Oracle内根据身份证号码判断性别:select decode(mod (to_number( substr(t.idcard ,17, 1)),2 ),0, '女','男' ) as sex from table_test t;原创 2015-12-07 16:02:15 · 12379 阅读 · 0 评论 -
Oracle内根据上一行总数和本行新增数计算本行总数
需求如下: 数据库内的一张表,每天都会有数据新增进来,有day字段做日期控制,每天有新增数和截止当日的总数两个字段值,现在根据前一天的总数和今天的新增数量计算截止今天的总数,SQL:--1. 初始化每个区县的 第一条退休人口数据update T_FACT_SOCAIL_RETIRED tset t.totalcount = t.newcountwhere t.day = (select mi原创 2016-01-15 09:30:38 · 1360 阅读 · 0 评论 -
Oracle内正则替换Clob类型内的字符串
update zzwk_zzw_todo_temp_csyxzm t set t.info_body =regexp_replace(info_body,'"null"' ,'""' );commit;原创 2016-03-21 10:45:15 · 2006 阅读 · 0 评论 -
ORACLE 定时执行存储过程
/* 查询:select job,broken,what,interval,t.* from user_jobs t; job job的唯一标识,自动生成的 broken 是否处于运行状态,N;运行;Y:停止 what 存储过程名称next_date 初次执行时间 interval 执行周期 删除:begin dbms_job.remove(jobno); end;转载 2016-07-12 11:14:46 · 383 阅读 · 0 评论 -
Kettle解析LIST JSON数据
JSON格式如下:{"list":[{"ref_date":"2016-06-12","user_source":0,"new_user":2,"cancel_user":14},{"ref_date":"2016-06-12","user_source":1,"new_user":3,"cancel_user":0},{"ref_date":"2016-06-12","user_source":1原创 2016-06-13 10:00:59 · 13132 阅读 · 0 评论