当前位置: 首页 > news >正文

数仓建设之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…...

物联网智能技术的深入探讨与案例分析

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

python语言基础-5 进阶语法-5.2 装饰器-5.2.2 简单装饰器

声明&#xff1a;本内容非盈利性质&#xff0c;也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站&#xff0c;会尽量附上原文链接&#xff0c;并鼓励大家看原文。侵删。 5.2.2 简单装饰器 装饰器的形式就是一个闭包&#xff0c;下面是一个简单的定义并使用…...

TransFormer--解码器:带掩码的多头注意力层

TransFormer--解码器&#xff1a;带掩码的多头注意力层 以英法翻译任务为例&#xff0c;假设训练数据集样本如下表所示。 原句目标翻译I am goodJe vais bienGood morningBonjourThank you very muchMerci beaucoup 上表所示的数据集由两部分组成&#xff1a;原句和目标句。在…...

【ArcGIS微课1000例】0130:图层组详解与使用

文章目录 一、图层组概述二、创建图层组三、在图层组中管理图层四、对话框中图层组的列表一、图层组概述 图层组包含其他图层。图层组有助于对地图中相关类型的图层进行组织,并且可用于定义高级绘制选项。例如,假设在地图上有两个图层分别用于表示铁路和高速公路。您可将这些…...

Linux中配置ntp服务

NTP&#xff1a;是Network Time Protocol的缩写又 称网络时间协议&#xff0c;是用来使计算机时间同步化的一种协议&#xff0c;用来同步网络中各主机的时 间&#xff0c;在linux系统中早期使用ntp来实现&#xff0c;后来使用chrony来实现。Chrony 应用本身已经有 几年了&#…...

微服务day10-Redis面试篇

Redis主从 搭建主从集群 建立集群时主节点会生成同一的replicationID,交给各个从节点。 集群中的缓冲区是一个环型数组&#xff0c;即若从节点宕机时间过长&#xff0c;可能导致命令被覆盖。 主从集群优化 哨兵原理 哨兵是一个集群来确保哨兵不出现问题。 服务状态监控 选举…...

STL序列式容器之list

相较于vector的连续性空间&#xff0c;list相对比较复杂&#xff1b;list内部使用了双向环形链表的方式对数据进行存储&#xff1b;list在增加元素时&#xff0c;采用了精准的方式分配一片空间对数据及附加指针等信息进行存储&#xff1b; list节点定义如下 template<clas…...

docker:基于Dockerfile镜像制作完整案例

目录 摘要目录结构介绍起始目录package目录target目录sh目录init.sh脚本start.sh脚本stop.sh脚本restart.sh脚本 config目录 步骤1、编写dockerfilescript.sh脚本 2、构件镜像查看镜像 3、保存镜像到本地服务器4、复制镜像文件到指定目录&#xff0c;并执行init.sh脚本5、查看挂…...

微信小程序自定义顶部导航栏(适配各种机型)

效果图 1.pages.js&#xff0c;需要自定义导航栏的页面设置"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&#xff08;20241022&#xff09; Anthropic 70.88 82.4…...

信息技术引领未来:大数据治理的实践与挑战

信息技术引领未来&#xff1a;大数据治理的实践与挑战 在信息技术日新月异的今天&#xff0c;大数据已成为企业和社会发展的重要驱动力。大数据治理&#xff0c;作为确保数据质量、安全性和合规性的关键环节&#xff0c;正面临着前所未有的实践挑战与机遇。本文将探讨信息技术…...

Git 分⽀规范 Git Flow 模型

前言 GitFlow 是一种流行的 Git 分支管理策略&#xff0c;由 Vincent Driessen 在 2010 年提出。它提供了一种结构化的方法来管理项目的开发、发布和维护&#xff0c;特别适合大型和复杂的项目。GitFlow 定义了一套明确的分支模型和工作流程&#xff0c;使得团队成员可以更有效…...

基于YOLOv8深度学习的公共卫生防护口罩佩戴检测系统(PyQt5界面+数据集+训练代码)

在全球公共卫生事件频发的背景下&#xff0c;防护口罩佩戴检测成为保障公众健康和控制病毒传播的重要手段之一。特别是在人员密集的公共场所&#xff0c;例如医院、学校、公共交通工具等地&#xff0c;口罩的正确佩戴对降低病毒传播风险、保护易感人群、遏制疫情扩散有着至关重…...

Nature Communications 基于触觉手套的深度学习驱动视触觉动态重建方案

在人形机器人操作领域&#xff0c;有一个极具价值的问题&#xff1a;鉴于操作数据在人形操作技能学习中的重要性&#xff0c;如何有效地从现实世界中获取操作数据的完整状态&#xff1f;如果可以&#xff0c;那考虑到人类庞大规模的人口和进行复杂操作的简单直观性与可扩展性&a…...

构建SSH僵尸网络

import argparse import paramiko# 定义一个名为Client的类&#xff0c;用于表示SSH客户端相关操作 class Client:# 类的初始化方法&#xff0c;接收主机地址、用户名和密码作为参数def __init__(self, host, user, password):self.host hostself.user userself.password pa…...

WPF中MVVM工具包 CommunityToolkit.Mvvm

CommunityToolkit.Mvvm&#xff0c;也称为MVVM工具包&#xff0c;是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVM&#xff08;Model-View-ViewModel&#xff09;库&#xff0c;旨在帮助开发者更容易地实现MVVM设计模式。 特点 独立于平台和运行时&a…...

学习空闲任务函数

一、user_StopEnterTask 停止 进入任务 /* Private includes -----------------------------------------------------------*/ //includes #include "user_TasksInit.h" #include "user_MPUCheckTask.h"#include "ui.h" #include "ui_Hom…...

Hyper-v中ubuntu与windows文件共享

Hyper-v中ubuntu与windows文件共享 前言相关链接第一步--第一个链接第二步--第二个链接测试与验证 前言 关于Hyper-V的共享我搞了好久&#xff0c;网上的很多教程太过冗余&#xff0c;我直接采用最简单的办法吧 相关链接 Hyper-V中Ubuntu 同windows系统共享文件夹-百度经验 …...

【软件工程】一篇入门UML建模图(类图)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;软件开发必练内功_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…...

Windows 安装Docker For Desktop概要

Windows 安装docker 下载部分的工作需要使用科学技术。如果没有可以联系博主发送已下载好的文件。 本文档不涉及技术的讲解&#xff0c;仅有安装的步骤。 准备工作 包含下载与环境准备&#xff0c;下载的文件仅下载&#xff0c;在后续步骤进行安装。 微软关于wsl的文档&…...

解决循环依赖报错问题

Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name ‘asyncTaskServiceImpl’: Bean with name ‘asyncTaskServiceImpl’ has been injected into other beans [resignServiceImpl] in its raw version as part…...

代码随想录第46期 单调栈

这道题主要是单调栈的简单应用 class Solution { public:vector<int> dailyTemperatures(vector<int>& T) {vector<int> result(T.size(),0);stack<int> st;st.push(0);for(int i1;i<T.size();i){if(T[i]<T[st.top()]){st.push(i);}else{wh…...

中仕公考怎么样?事业编面试不去有影响吗?

事业编考试笔试已经通过&#xff0c;但是面试不去参加会有影响吗&#xff1f; 1. 自动放弃面试资格&#xff1a;未能按时出席事业单位的面试将被视为主动放弃该岗位的竞争机会。 2. 个人信誉问题&#xff1a;面试作为招聘流程的关键步骤&#xff0c;无故缺席可能被解释为诚信…...

OMV7 树莓派 tf卡安装

​ 升级7之后&#xff0c;问题多多&#xff0c;不是docker不行了&#xff0c;就是代理不好使 今天又重装了一遍&#xff0c;用官方的链接&#xff0c;重新再折腾一遍…… 使用raspberry pi imager安装最新版lite OS。 注意是无桌面 Lite版 配置好树莓派初始化设置&#xff0…...

Go语言24小时极速学习教程(五)Go语言中的SpringMVC框架——Gin

作为一个真正能用的企业级应用&#xff0c;怎么能缺少RESTful接口呢&#xff1f;所以我们需要尝试在Go语言环境中写出我们的对外接口&#xff0c;这样前端就可以借由Gin框架访问我们数据库中的数据了。 一、Gin框架的使用 1. 安装 Gin 首先&#xff0c;你需要在你的 Go 项目…...

【汇编】c++游戏开发

由一起学编程创作的‘C/C项目实战&#xff1a;2D射击游戏开发&#xff08;简易版&#xff09;&#xff0c; 440 行源码分享来啦~’&#xff1a; C/C项目实战&#xff1a;2D射击游戏开发&#xff08;简易版&#xff09;&#xff0c; 440 行源码分享来啦~_射击c-CSDN博客文章浏览…...

Android Studio | 修改镜像地址为阿里云镜像地址,启动App

在项目文件的目录下的 settings.gradle.kts 中修改配置&#xff0c;配置中包含插件和依赖项 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https://maven.aliyun.com/repository/releases")}maven { urlu…...

游学旅行网站建设策划书/网络营销与直播电商好就业吗

今天难得和老王一起喝喝酒聊聊天&#xff0c;大家平常工作都挺忙的&#xff0c;聚在一起的时间是越来越少了。 我们几十年的交情了&#xff0c;都有着各自的公司&#xff0c;虽然不大但都还过得去。 “现在向我们这种中小型企业是越来越难做了&#xff0c;大公司我们比不过&…...

wix网站怎么做/营销型网站推广

介绍 假钞很容易成为小型和大型企业的问题。当这些钞票不是真的时&#xff0c;能够识别这些钞票是非常重要的。对于日常与现金打交道的商务人士和个人而言&#xff0c;此过程可能非常耗时。这就需要通过自动化来实现这一目标。 因此&#xff0c;我们认为有必要开发一种自动机…...

厦门网站建设 孚珀科技/交换链接案例

本章重点&#xff1a;指针。 下面来看指针的指针 顾名思义指针的指针就是指向指针所在地址的一个指针也叫作二级指针&#xff0c;废话不多说 我们来看代码定义方式及效果 #include <stdio.h> int main(){int a10;int* p&a;int** s&p;printf("%d\n",*p)…...

wordpress动转换标签别名/设计网站接单

如何映射网络驱动器,也就是把远程硬盘本地化 【局域网才行】 1、如果你要映射网络磁盘,那首选你当然是应该拥有"网络磁盘",网络磁盘其实只是一个网上的共享文件夹,在中国,IP固定的服务器才能设置网络上可用的共享文件夹,如果是本地的话,一般指的是局域网共享文件夹 2…...

钱网站制作/网络营销的工作内容包括哪些

前言 不论是在我国还是世界范围内&#xff0c;软件产业都是近几十年才出现的产业&#xff0c;搞编程的工作&#xff0c;目前还可以说成是科技工作者吧&#xff0c;目前互联网行业内的程序员想必主要是80后与90后了&#xff0c;当然一些70后朋友也是有的&#xff0c;不过还在主…...

江苏网站建设多少钱/广告公司推广文案

koa是有express原班人马打造的基于node.js的下一代web开发框架。koa 1.0使用generator实现异步&#xff0c;相比于回调简单和优雅和不少。koa团队并没有止步于koa 1.0&#xff0c; 随着node.js开始支持async/await&#xff0c;他们又马不停蹄的发布了koa 2.0&#xff0c;koa2完…...