数仓建设之Oracle常见语法学习
1. 字符串截取
select substr('AAA-BBB', 1, instr('AAA-BBB', '-', -1) - 1) 值 from dual; --AAA
select substr('AAA-BBB', instr('AAA-BBB', '-', -1) + 1) 值 from dual; --BBB
2. 帆软报表有参数SQL
select a.agency_code, a.agency_name, a.agency_typefrom dw.dim_ta_subred_agency_info awhere 1 = 1${if(len(agency_code)==0,"","and a.agency_code in ('"+ agency_code +"')")}order by 1
3. oracle导出dmp文件
exp funddc/Jpmam_240416@ETL51New file="D:\dmp\temp_cube_trade_info_20240702.dmp" tables=(temp_cube_trade_info_20240702)
--oracle导入dmp文件 导入的时候会自己创建表
--full=y:代表将dmp文件中的所有数据都进行导入;
--ignore=y:默认为n,当不加这个参数时,导入的表或视图如果在原有表中本来就存在就无法导入这些数据,加上以后就会直接覆盖这些数据。
imp dc_ctl/dc_ctl@etltdb file="D:\dmp\temp_cube_trade_info_20240702.dmp" full=y ignore=y
4.oracle中表的数据转化成xml文件导出
--步骤1:编写hrxml.sql 脚本文件
conn hr/hr
set timing off
set termout off
set heading off
set long 99999
spool ctl_db_info.xml replace
select dbms_xmlgen.getxml('select * from dc_ctl.ctl_db_info') from dual;
exit--步骤2:执行命令
sqlplus -S /nolog @hrxml.sql 运行此脚本--环境变量cat .bash_profile
export ORACLE_HOME=/home/app_adm/instantclient_11_2
export HPLSQL_HOME=/home/app_adm/hplsql-0.3.31
export PATH=$PATH:$ORACLE_HOME:$HPLSQL_HOME
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export LD_LIBRARY_PATH=$ORACLE_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
5.Oracle中的服务名以及SID默认是实例名称
--1. Oracle的服务名(ServiceName)查询
SQL> show parameter service_name;--2. Oracle的SID查询命令:
SQL> select instance_name from v$instance;--3. 查看Oracle版本
SQL> select version from v$instance
6. base64加解密
--base64加密
select utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('DC_CTL')))from dual;
--base64解密
select utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw('RENfQ1RM')))from dual;
7.oracle行转列
SELECT T.table_name,listagg(lower(T.COLUMN_NAME), ',') WITHIN GROUP(ORDER BY t.table_name, t.column_id) namesFROM all_tab_columns twhere table_name in ('ITS_ASSET_UNIT','ITS_PROD_CODE','ITS_DIVIDEND_DETAILS','ITS_ACCOUNT_REQUEST','ITS_INIT_DATE','ITS_AGREEMENT','ITS_INVEST_ACCOUNT','ITS_EXT_SIGN_INFO')GROUP BY T.table_name;
8. 在Oracle中查看表在那个存储过程中使用过
--oracle 在Oracle中查看表在那个存储过程中使用过SELECT DISTINCT NAMEFROM all_sourceWHERE TYPE = 'PROCEDURE'AND upper(text) LIKE '%TAP_TREQUEST_PARAMETER%';
9. 查看Oracle版本信息
--方法1
select * from v$version;
--方法2
SQL> col product format a35
SQL> col version format a15
SQL> col status format a15
SQL> select * from PRODUCT_COMPONENT_VERSION;
10. Oracle并行执行更新或者查询
UPDATE /*+ parallel(t 16) parallel(temp 16)*/ FUNDDC.DC_SHARE_HISTORY T
11. 存储过程异常捕获
exceptionwhen others thenrollback;runCode := '1';logMsg := DBMS_UTILITY.format_error_stack ||DBMS_UTILITY.format_error_backtrace ||DBMS_UTILITY.format_call_stack;RAISE_APPLICATION_ERROR(-20040,'Oracle SQL错误码:' || SQLCODE || ',logMsg: ' || logMsg || ',错误消息:' ||SUBSTR(SQLERRM, 1, 1000));
12. oracle报错ora-01940
--由于资源占用,oracle报错01940,解决方案如下:--1.首先将索要删除的用户锁定,这句必须执行,否则之后杀死进程无效!alter user icontrol account lock;
--2.从【v$Session】表查看当前用户占用资源,有使用资源的情况下,肯定不能删除用户select saddr,sid,serial#,paddr,username,status from v$session where lower(username) = 'icontrol';select 'alter system kill session '''||sid||','||serial#||''';' from v$session where lower(username) = 'icontrol';
--3. 杀死status为【 INACTIVE】的进程,sid和seria#值为该列下的数值alter system kill session 'sid,serial#';
--4. 删除用户,如果不成功,即还是会报01940错,因为还有【 INACTIVE】进程没杀死drop user icontrol cascade;
13. oracle 新增字段
alter table sch_logs add level_ varchar2(8);
comment on column sch_logs.level_ is 'info,debug,error';
14.赋权
--将表Table_A的查询权限赋权给用户USER_A
GRANT SELECT ON Table_A to User_A;
--增删改查都开启权限的语句:
grant select,update,delete,insert on Table_A to USER_A;
15. Oracle中查看表空间位置
select * from dba_data_files;
create tablespace tbs_finedb datafile '/oradb/etldb/finedb.dbf' size 50M autoextend on next 10M maxsize unlimited;
create user finedb identified by finedb default tablespace tbs_finedb;
16. 恢复update、delete之前的数据
--恢复update、delete之前的数据
--根据修改语句查出你需要恢复的时间点
select * from v$sql where sql_text like '%update kycinfo%'
--new_table :新建表的名; table :误操作的表名; 2020-09-10 11:44:25:保存这个时间点的数据到新表。
create table new_kycinfo as select * from kycinfo as of timestamp to_timestamp('2023-08-03 17:00:06','yyyy-mm-dd hh24:mi:ss');
--将原表的数据全部删除
delete kycinfo ;
--把恢复的数据保存到原表。
insert into kycinfo select * from new_kycinfo ;
17.oracle中不同字符集占用字节
gkb ->中文2个字节
utf8 ->中文3个字节lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节
length(string)计算string所占的字符长度:返回字符串的长度,单位是字符
对于单字节字符,LENGTHB和LENGTH是一样的.
如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。
注:
一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。
select lengthb('飘') from dual 可查询汉字在Oracle数据库里占多少字节
18.获取前t-4个工作日的日期
--方式一
select t.date_id as exdatefrom (select a.date_id, rank() over(order by a.date_id desc) as rnfrom dw.dim_date awhere a.date_id <= (select value from icontrol.sch_variablewhere name = 'etf_rundate' )and a.is_workday = '1') twhere t.rn = 4
--方式二
select c.sk_date from ctl_srcdwn_batch a
inner join comm_cldr_custom bon a.busdate_int = b.sk_dateand b.sk_calendar=1
inner join comm_cldr_custom con b.workday_no - c.workday_no = 5and c.workday_flag=1and c.sk_calendar=1
where a.srcsys ='${dk_system}' and a.dwnframe ='${dk_frame}';
19. 获取Oracle中的建表语句
SELECT t1.Table_Name AS "表名称",t3.comments AS "表说明",t1.Column_Name AS "字段名称",t1.DATA_TYPE || '(' || t1.DATA_LENGTH || ')' AS "数据类型",t1.NullAble AS "是否为空",t2.Comments AS "字段说明",t1.Data_Default As "默认值"FROM cols t1LEFT JOIN user_col_comments t2ON t1.Table_name = t2.Table_nameAND t1.Column_Name = t2.Column_NameLEFT JOIN user_tab_comments t3ON t1.Table_name = t3.Table_nameLEFT JOIN user_objects t4ON t1.table_name = t4.OBJECT_NAMEWHERE NOT EXISTS (SELECT t4.Object_NameFROM User_objects t4WHERE t4.Object_Type = 'TABLE'AND t4.Temporary = 'Y'AND t4.Object_Name = t1.Table_Name)ORDER BY t1.Table_Name, t1.Column_ID;
20. MYSQL不同版本对应的jdbc驱动类
--mysql3
org.gjt.mm.mysql.Driver
--mysql5
com.mysql.jdbc.Driver
--mysql8
com.mysql.cj.jdbc.Driver
--url
jdbc:mysql://10.169.1.239:3306/amc_newton?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true--kettle使用jdbc驱动版本
mysql-connector-java-5.1.47.jar --该版本支持MySQL3、5、8
21. excel VLOOKUP()函数的使用
=VLOOKUP(A2,B:B,1,0) A2在B列表中寻找匹配,匹配到显示B列的数据,匹配不到显示NA
=VLOOKUP(B2,A:A,1,0) B2在A列表中寻找匹配,匹配到显示A列的数据,匹配不到显示NA
22. oracle 存储过程备注
-- Author : APP_ADM-- Created : 2016/11/30 8:29:33-- Purpose : 统计MIS中PEER GROUP
23. 字段拼接
--字段拼接
listagg(a.manager_name, ',') within group(order by a.sk_managerid)
--例如:
select a.fund_code,listagg(a.sk_managerid, ',') within group(order by a.sk_managerid) as manager_code,listagg(a.manager_name, ',') within group(order by a.sk_managerid) as manager_namefrom funddc.prod_assoc_fundmanager agroup by a.fund_code;
--000073 uo211,uo309,uo341,uo411,uo608 杜猛,乐琪,杨景喻,叶敏,刘辉
24. GPG加密
crontab -e 8,18,28,38,48,58 4-18 * * * /bin/sh /home/apple/apple_schedule.sh >> /home/apple/tmp/apple.log
--导入公钥 公钥加密文件,用私钥解密文件
gpg --import gpg/APPLERSA_public.asc
gpg --encrypt --recipient edi@group.apple.com --trust-model always
gpg --recipient edi@group.apple.com --trust-model always --output ./encrypted/$i.pgp --encrypt ./apple/$i
相关文章:
数仓建设之Oracle常见语法学习
1. 字符串截取 select substr(AAA-BBB, 1, instr(AAA-BBB, -, -1) - 1) 值 from dual; --AAA select substr(AAA-BBB, instr(AAA-BBB, -, -1) 1) 值 from dual; --BBB2. 帆软报表有参数SQL select a.agency_code, a.agency_name, a.agency_typefrom dw.dim_ta_subred_agency…...
物联网智能技术的深入探讨与案例分析
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
python语言基础-5 进阶语法-5.2 装饰器-5.2.2 简单装饰器
声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.2.2 简单装饰器 装饰器的形式就是一个闭包,下面是一个简单的定义并使用…...
TransFormer--解码器:带掩码的多头注意力层
TransFormer--解码器:带掩码的多头注意力层 以英法翻译任务为例,假设训练数据集样本如下表所示。 原句目标翻译I am goodJe vais bienGood morningBonjourThank you very muchMerci beaucoup 上表所示的数据集由两部分组成:原句和目标句。在…...
【ArcGIS微课1000例】0130:图层组详解与使用
文章目录 一、图层组概述二、创建图层组三、在图层组中管理图层四、对话框中图层组的列表一、图层组概述 图层组包含其他图层。图层组有助于对地图中相关类型的图层进行组织,并且可用于定义高级绘制选项。例如,假设在地图上有两个图层分别用于表示铁路和高速公路。您可将这些…...
Linux中配置ntp服务
NTP:是Network Time Protocol的缩写又 称网络时间协议,是用来使计算机时间同步化的一种协议,用来同步网络中各主机的时 间,在linux系统中早期使用ntp来实现,后来使用chrony来实现。Chrony 应用本身已经有 几年了&#…...
微服务day10-Redis面试篇
Redis主从 搭建主从集群 建立集群时主节点会生成同一的replicationID,交给各个从节点。 集群中的缓冲区是一个环型数组,即若从节点宕机时间过长,可能导致命令被覆盖。 主从集群优化 哨兵原理 哨兵是一个集群来确保哨兵不出现问题。 服务状态监控 选举…...
STL序列式容器之list
相较于vector的连续性空间,list相对比较复杂;list内部使用了双向环形链表的方式对数据进行存储;list在增加元素时,采用了精准的方式分配一片空间对数据及附加指针等信息进行存储; list节点定义如下 template<clas…...
docker:基于Dockerfile镜像制作完整案例
目录 摘要目录结构介绍起始目录package目录target目录sh目录init.sh脚本start.sh脚本stop.sh脚本restart.sh脚本 config目录 步骤1、编写dockerfilescript.sh脚本 2、构件镜像查看镜像 3、保存镜像到本地服务器4、复制镜像文件到指定目录,并执行init.sh脚本5、查看挂…...
微信小程序自定义顶部导航栏(适配各种机型)
效果图 1.pages.js,需要自定义导航栏的页面设置"navigationStyle": "custom" 2.App.vue,获取设备高度及胶囊位置 onLaunch: function () {// 系统信息const systemInfo uni.getSystemInfoSync()// 胶囊按钮位置信息const menuButtonInfo uni.…...
sslSocketFactory not supported on JDK 9+
clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9 at okhttp3.internal.platform.Jdk9Platform.trustManager(Jdk9Platform.kt:61) at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:751) at 1.升版本4.9.3以上 2、加个函数获取X…...
[Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明
官方说明 功能说明 参数 类型 功能 pbyDataSrcPOINTER TO BYTE指向源数组指针uiSizeUINT要移动数据的BYTE数pbyDataDesPOINTER TO BYTE指向目标数组指针 实例应用-ST IF SYSTEM_CLOCK.AlwaysTrue THENCASE iAutoState OF0: //读写完成信号在下次读写信号的上升沿或复位信号…...
大语言模型通用能力排行榜(2024年11月8日更新)
数据来源SuperCLUE 榜单数据为通用能力排行榜 排名 模型名称 机构 总分 理科 文科 Hard 使用方式 发布日期 - o1-preview OpenAI 75.85 86.07 76.6 64.89 API 2024年11月8日 - Claude 3.5 Sonnet(20241022) Anthropic 70.88 82.4…...
信息技术引领未来:大数据治理的实践与挑战
信息技术引领未来:大数据治理的实践与挑战 在信息技术日新月异的今天,大数据已成为企业和社会发展的重要驱动力。大数据治理,作为确保数据质量、安全性和合规性的关键环节,正面临着前所未有的实践挑战与机遇。本文将探讨信息技术…...
Git 分⽀规范 Git Flow 模型
前言 GitFlow 是一种流行的 Git 分支管理策略,由 Vincent Driessen 在 2010 年提出。它提供了一种结构化的方法来管理项目的开发、发布和维护,特别适合大型和复杂的项目。GitFlow 定义了一套明确的分支模型和工作流程,使得团队成员可以更有效…...
基于YOLOv8深度学习的公共卫生防护口罩佩戴检测系统(PyQt5界面+数据集+训练代码)
在全球公共卫生事件频发的背景下,防护口罩佩戴检测成为保障公众健康和控制病毒传播的重要手段之一。特别是在人员密集的公共场所,例如医院、学校、公共交通工具等地,口罩的正确佩戴对降低病毒传播风险、保护易感人群、遏制疫情扩散有着至关重…...
Nature Communications 基于触觉手套的深度学习驱动视触觉动态重建方案
在人形机器人操作领域,有一个极具价值的问题:鉴于操作数据在人形操作技能学习中的重要性,如何有效地从现实世界中获取操作数据的完整状态?如果可以,那考虑到人类庞大规模的人口和进行复杂操作的简单直观性与可扩展性&a…...
构建SSH僵尸网络
import argparse import paramiko# 定义一个名为Client的类,用于表示SSH客户端相关操作 class Client:# 类的初始化方法,接收主机地址、用户名和密码作为参数def __init__(self, host, user, password):self.host hostself.user userself.password pa…...
WPF中MVVM工具包 CommunityToolkit.Mvvm
CommunityToolkit.Mvvm,也称为MVVM工具包,是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVM(Model-View-ViewModel)库,旨在帮助开发者更容易地实现MVVM设计模式。 特点 独立于平台和运行时&a…...
学习空闲任务函数
一、user_StopEnterTask 停止 进入任务 /* Private includes -----------------------------------------------------------*/ //includes #include "user_TasksInit.h" #include "user_MPUCheckTask.h"#include "ui.h" #include "ui_Hom…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
