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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python的仓库管理系统设计与实现

背景&#xff1a; 基于Python的仓库管理系统功能介绍 本仓库管理系统采用Python语言开发&#xff0c;利用Django框架和MySQL数据库&#xff0c;实现了高效、便捷的仓库管理功能。 用户管理&#xff1a; 支持员工和管理员角色的管理。 用户注册、登录和权限分配功能&#x…

RabbitMQ的工作队列在Spring Boot中实现(详解常⽤的⼯作模式)

上文着重介绍RabbitMQ 七种工作模式介绍RabbitMQ 七种工作模式介绍_rabbitmq 工作模式-CSDN博客 本篇讲解如何在Spring环境下进⾏RabbitMQ的开发.&#xff08;只演⽰部分常⽤的⼯作模式&#xff09; 目录 引⼊依赖 一.工作队列模式 二.Publish/Subscribe(发布订阅模式) …

FastAPI

FastAPI 摘要概述快速开始基础应用路由注册和端点绑定路由端点传参与校验请求和响应报文后台异步任务执行异常与错误中间件数据库操作应用启动和关闭回调多应用挂载自定义配置swagger ui应用配置信息读取 继续学习与最佳实践安全认证机制*依赖注入PydanticPytest单元测试Linux部…

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

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

Linux中查看某个文件完整路径的方法

目录 方法一&#xff1a;通过readlink命令方法二&#xff1a;通过realpath命令方法三&#xff1a;pwd 结合 ls -d 命令方法四&#xff1a;pwd和dirname和basename结合 方法一&#xff1a;通过readlink命令 如果目标文件是一个软链接文件&#xff0c;会返回源文件路径&#xff…

C语言项⽬实践-贪吃蛇

目录 1.项目要点 2.窗口设置 2.1mode命令 2.2title命令 2.3system函数 2.Win32 API 2.1 COORD 2.2 GetStdHandle 2.3 CONSOLE_CURSOR_INFO 2.4 GetConsoleCursorInfo 2.5 SetConsoleCursorInfo 2.5 SetConsoleCursorPosition 2.7 GetAsyncKeyState 3.贪吃蛇游戏设…

uniapp对接极光推送,实现消息推送功能

通过集成JG-JPush和JG-JCore插件&#xff0c;可以在应用中添加消息推送功能&#xff0c;向用户发送通知、消息等。这对于提升用户体验、增加用户粘性非常有帮助‌。 效果图&#xff1a; 一、登录极光官网 官网链接&#xff1a;portalhttps://www.jiguang.cn/console/#/home点…

React--》如何高效管理前端环境变量:开发与生产环境配置详解

在前端开发中&#xff0c;如何让项目在不同环境下表现得更为灵活与高效&#xff0c;是每个开发者必须面对的挑战&#xff0c;从开发阶段的调试到生产环境的优化&#xff0c;环境变量配置无疑是其中的关键。 env配置文件&#xff1a;通常用于管理项目的环境变量&#xff0c;环境…

CentOS 7中查找已安装JDK路径的方法

使用yum安装了jdk8&#xff0c;但是其他中间件需要配置路径的时候&#xff0c;却没办法找到&#xff0c;如何获取jdk路径&#xff1a; 一、确认服务器是否存在jdk java -version 二、查找jdk的 java 命令在哪里 which java 三、找到软链指向的地址 ls -lrt /usr/bin/java l…

C++和OpenGL实现3D游戏编程【连载18】——加载OBJ三维模型

1、本节课要实现的内容 以前我们加载过立方体木箱,立方体的顶点数据都是在程序运行时临时定义的。但后期如果模型数量增多,模型逐步复杂,我们就必须加载外部模型文件。这节课我们就先了解一下加载OBJ模型文件的方法,这样可以让编程和设计进行分工合作,极大丰富我们游戏效…

关系型数据库和非关系型数据库详解

文章目录 关系型数据库和非关系型数据库详解一、引言二、关系型数据库1、关系型数据库简介1.1、SQL语言 2、关系型数据库的实际应用3、关系型数据库的优点4、关系型数据库的缺点 三、非关系型数据库1、非关系型数据库简介1.1、灵活性示例 2、非关系型数据库的分类3、非关系型数…

Python自动检测requests所获得html文档的编码

使用chardet库自动检测requests所获得html文档的编码 使用requests和BeautifulSoup库获取某个页面带来的乱码问题 使用requests配合BeautifulSoup库&#xff0c;可以轻松地从网页中提取数据。但是&#xff0c;当网页返回的编码格式与Python默认的编码格式不一致时&#xff0c…

Acrobat Pro DC 2023(pdf免费转化word)

所在位置 通过网盘分享的文件&#xff1a;Acrobat Pro DC 2023(64bit).tar 链接: https://pan.baidu.com/s/1_m8TT1rHTtp5YnU8F0QGXQ 提取码: 1234 --来自百度网盘超级会员v4的分享 安装流程 打开安装所在位置 进入安装程序 找到安装程序 进入后点击自定义安装&#xff0c;这里…

Java函数式编程学习笔记

函数式编程-Stream流 1. 概述 1.1 为什么学&#xff1f; 能够看懂公司里的代码大数量下处理集合效率高代码可读性高消灭嵌套地狱 下面是没有使用函数式编程的代码&#xff1a; //查询未成年作家的评分在70以上的书籍 由于洋流影响所以作家和书籍可能出现重复&#xff0c;需…

Centos 7 安装wget

Centos 7 安装wget 最小化安装Centos 7 的话需要上传wget rpm包之后再路径下安装一下。rpm包下载地址&#xff08;http://mirrors.163.com/centos/7/os/x86_64/Packages/&#xff09; 1、使用X-ftp 或者WinSCP等可以连接上传的软件都可以首先连接服务器&#xff0c;这里我用的…

.NET 9.0 中 System.Text.Json 的全面使用指南

以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式&#xff0c;包括序列化、反序列化、配置选项等&#xff0c;并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…

前端页面一些小点

案例一&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>快递单号查询</title><…

spring-data-elasticsearch 3.2.4 实现桶bucket排序去重,实现指定字段的聚合搜索

一、背景 es索引有一个文档CourseIndex&#xff0c;下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候&#…

MIT6.5840 Lab 1: MapReduce(6.824)

结果 介绍 在本实验中&#xff0c;您将构建一个MapReduce系统。您将实现一个调用应用程序Map和Reduce函数并处理文件读写的工作进程&#xff0c;以及一个将任务分发给工作进程并处理失败的工作进程的协调进程。您将构建类似于MapReduce论文的东西。&#xff08;注意&#xff1a…

nfs服务器--RHCE

一&#xff0c;简介 NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计 算机&#xff08;不同的计算机、不同的操作系统&#xff09;之间通过TCP/IP网络共享资源&#xff0c;主要在unix系…