Oracle PL/SQL 过滤非数字字符

在ORACLE中找出某列非数字类型的数据 【代码】在ORACLE中找出某列非数字类型的数据。 阅读详情

背景:给同事做了个报表,使用时从EXCEL、网页等向报表中拷贝查询条件(局编)。

用户反映查不出数据——调查后发现用户填的局编带有空格——随手加了TRIM

又有查不出数据的情况——带有全角空格——用Replace替换全角空格

还有查不到,调查发现可能混有换行、EXCEL中神秘的空白符等。

处理:第一反应是让用户粘贴前先转贴到记事本中,“过滤”一下无效字符。简单、有效,但很不友好。

解决:咨询后得知合理的局编仅由数字组成,那么可以放心的滤掉所有非数字字符。(注:10g以后用regex_replace很容易实现。)

对此Oracle提供了translate(a, b, c)函数:

  • a,b,c三个参数均是字符串
  • 当a,b,c中任一个为NULL时,返回NULL。
  • 否则,对a中每个字符x、在b中查找:
      如找不到,则追加x到返回值中,
      如找到,则再尝试从c中取对应位置的字符y(例如x出现在b中、是第6个字符,则从c中也取第六个字符,若c不足6个字符,则y为NULL)
             如y不为NULL,追加y到返回值中
             如y为NULL,忽略x

非数字字符太多,不可能一一列出。因此分两步:首先滤出非数字字符f:

select translate('a1e2c3z', '#0123456789', '#') from dual;

然后将f作为过滤串再滤一次,即可得到纯数字串(拼接一个0前缀保证非空,避免返回NULL),组合起来:

select translate( 'a1e2c3z', '0' || translate('a1e2c3z', '#0123456789', '#'), '0') from dual;



 

【oracle作业5】PL/SQL应用 作业5 1.oraclePL/SQL有哪几种主要的基本类型、特殊类型,说明其使用方式和含义。 1.数值类型 数值类型主要包括NUMBER、PLS_INTEGER和BINARY_INTEGER三种基本类型 NUMBER(p,s) : 用来存储正负整数、分数和浮点型数据,有38位的精确度,p表示精度,用于指定数字的总位数;s用于指定小数点后的数字位数。 2.字符类型 字符类型主要包括VARCHAR2、CHAR、LONG、NCHAR和NVARCHAR2等。这些类型的变量用来... 阅读详情

相关推荐

Oracle期末复习题实战指南:从SQL*Plus连库到PL/SQL分页查询避坑

Oracle数据库以SQL*Plus命令行工具和PL/SQL过程化语言为核心,通过实例连接、SQL查询、存储过程与分页机制实现数据操作。理解rownum分页原理、空值处理及异常捕获,能有效提升数据库开发效率。在考试复习与企业项目开发中,掌握SQL*Plus连库、PL/SQL块调试、分页查询及函数嵌套等技能,是快速补齐Oracle基础的关键。本文围绕Oracle期末复习题中的高频题型,将语法知识落地为可执行命令,帮助读者在真实库中跑通结果。

weixin_34101229的博客 347

oracle去除非数字字符

SELECT REGEXP_REPLACE (字段, '[^0-9]+', '') FROM TEST t ;

once先森的博客 3144

Oracle PL/SQL命令集及应用大全

本文还有配套的精品资源,点击获取 简介:本教程将引导你深入理解Oracle PL/SQL,这是一种结合了关系数据库功能与结构化编程语言的强大编程语言。通过掌握其命令集,你可以更好地在Oracle数据库系统中操作。内容涵盖PL/SQL基础、流程控制、异常处理、与SQL的集成、输入输出操作、性能优化和开发工具等方面。学习资料包括对PL/SQL命令的详细汇总,有助于初学者通过理论...

weixin_42604188的博客 1314

oracle 从字符串中筛选出除数字以外的字符

Oracle 中可以使用正则表达式来筛选字符串中的除数字以外的字符。 正则表达式可以使用 REGEXP_REPLACE 函数来实现。 例如,如果你想筛选出字符串 'abc123def456' 中的除数字以外的字符,可以使用如下语句: SELECT REGEXP_REPLACE('abc123def456', '[0-9]', '') FROM dual; 这将会返回 'abcdef'。 注意,'...

weixin_42611310的博客 1521

oracle过滤数字

oracle过滤数字oracle过滤数字

PlayReady Encrypt XAP 解密讨论

目前WP7市场上的绝大部分XAP都被MS进行了加密,经过分析,这个加密方式采用了AES方式进行了加密,本人经过对新的XAP格式(PRE)进行了分析,发现新的格式里,实际上是对之前PK(ZIP格式)的XAP进行了加密然后封装:   typedef struct {   DWORD HDR; // 0x07455250 : PRE & 0x7   DWORD a1; // always 0x1   D

u013729125的专栏 1507

oracle排除非数字,oracle字段中找出字段中含有非数字的方法!!!

1.在oracle中字段中找出汉字的方法:可以利用length(testname)和lengthb(testname),其中length(testname)不论数字或者字符都算一个,而lengthb则不同,比如说testname的值为:54看法12,用length(testname)的值为6,而lengthb(testname)的值为:8。利用这个就可以非常清楚的判断一个字符中是否包含汉字了(字母...

weixin_42102401的博客 7172

libiec61850实战:手把手教你用C语言动态获取IED设备模型(附完整代码解析)

本文详细介绍了如何使用libiec61850库通过C语言动态获取IED设备模型,包括环境配置、连接建立、模型遍历及错误处理等关键步骤。通过完整的代码示例和实战案例,帮助开发者掌握智能变电站通信中的核心技术,提升工业自动化系统的开发效率。

weixin_42519985的博客 433

oracle sql 取非,Oracle PL/SQL 过滤非数字字符

背景:给同事做了个报表,使用时从EXCEL、网页等向报表中拷贝查询条件(局编)。用户反映查不出数据——调查后发现用户填的局编带有空格——随手加了TRIM又有查不出数据的情况——带有全角空格——用Replace替换全角空格还有查不到,调查发现可能混有换行、EXCEL中神秘的空白符等。处理:第一反应是让用户粘贴前先转贴到记事本中,“过滤”一下无效字符。简单、有效,但很不友好。解决:咨询后得知合理的局编...

weixin_35726575的博客 1726

手把手教你用神经网络优化电机控制:从Simulink仿真到实际部署

本文提供了一套完整的工程实践指南,详细讲解了如何将神经网络应用于电机控制,从Simulink仿真建模、轻量级网络设计,到关键的模型量化与代码生成,最终实现向DSP/FPGA硬件的实际部署。文章直面实时性、精度与资源限制等核心工程挑战,为工程师提供了从理论到落地的清晰路径和实用避坑策略。

weixin_29246195的博客 226

别再死磕文档了!用国产MBSES软件5分钟上手MBSE建模(保姆级图文教程)

本文通过国产MBSES软件,详细演示了如何在5分钟内完成智能家居系统的MBSE建模。从模块图定义到状态机图构建,再到参数约束验证,全程图文指导,帮助工程师快速掌握基于模型的系统工程方法,显著提升复杂系统设计效率。

weixin_26833503的博客 237

Oracle PL/sql 字符 特殊符号解释大全

第二章 PL/SQL基础 一、字符集 在PL/SQL程序中,允许出现的字符集包括: 大小写字母(A-Z和a-z) 数字(0-9) 符号( ) + - * / < > = ! ~ ^ ; : . ’ @ % , " # $ & _ | { } ? [ ] 制表符、空格和回车符 PL/SQL对大小写不敏感,所以,除了在字符串和字符中,小写字...

iteye_212的博客 3875

DOSBOX 0.74模拟器安装Windows 95

DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件

xjnzhidao的博客 9309

Oracle PL/SQL 基礎

Oracle PL/SQL 基礎 (整理于2006年东莞裕元) 一.PL/SQL及調試工具.    1. SQL(Structured Query Language) 結構化查詢語言.    2. 調試工具       SQL*Plus       SQL WorkSheet       Pledit32       PL/SQL Developer       Toador

温故而知新 2115

Excel VBA | 一键批量生成对账单

根据对账单总表一键批量生成N家独立的客户对账单。

Microgoblins的博客 6982

MIKE水动力笔记8_冷启动与热启动

在【MIKE水动力笔记5_建立水动力模型】中,讲到【Step 2 设置模型参数】中的【Initial Conditions】时,提到了冷启动与热启动。本博文就详细讲解何为冷启动、热启动,并通过一个案例具体分析两者不同。...

晏长街的博客 6568

oracle判断字符串是否为数字

1、字符串为空则返回null 2、字符串为空串则返回null 3、字符串为数字则返回Y 4、字符串为非数字则返回N CREATE OR REPLACE FUNCTION IS_NUMBER (STRING VARCHAR2) RETURN VARCHAR2 IS NUMING NUMBER; BEGIN IF STRING is null then return null; END IF; NUMING := to_number(STRING);

Hjchidaozhe的博客 2546

第10篇:Agent + 爬虫 = 全自动数据采集专家

在企业级数据采集场景中,传统爬虫的痛点已经到了无法忽视的地步:而Agent + 爬虫的组合,就是这些痛点的终极解决方案。它的核心逻辑是:把爬虫从「人工写死的固定执行脚本」,升级为「能自主分析、自主决策、自主适配、自主修复的智能采集机器人」。我们在生产环境中做过对比测试:传统爬虫开发10个网站的采集脚本需要3人天,而Agent采集机器人只需要3分钟,页面改版后的修复成本从1人天降到了0,采集任务的成功率从62%提升到了95%以上。终端执行以下命令,安装基础依赖,与前9篇环境完全兼容: 二、核心能力拆解:Age

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1576

oracle把字符串中去掉数字,Oracle字符串中数字处理

输出结果为123456789A0001357 ;发现substr(v_i,14)截取后七位进行计算时,pl/sql会自动把字符转换成整数,把前面的lsquo;0rsqu最近开始写存储过程,有一个需求,数据库表中有个字段(20位序列号,里面可能有字符,后7位都是数字),,要根据数量对该字段进行加计算输出结果为123456789A0001357 ;发现substr(v_i,14)截取后七位进行计算时,...

weixin_39593427的博客 2731

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Oracle之PL/SQL要点

Oracle复习(PL/SQL) 一、概述 PL/SQL 作为 ORACLE 编程环境中的工具,是 SQL 的扩展,在 SQL 语句的使用上增加了编程语言的特点,PL/SQL 就是把数据操作和查询语句组织在 PL/SQL 代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。 二、基本语法 PL/SQL 是块结构语言;PL/SQL 程序划分成几个部分,并在每个部分中写入逻辑代码块;每个块都由三个部分组成。 声明部分 此部分以关键字 DECLARE 开头,可选部分,定义了程序中需要

AI 全栈工程师修炼中 811

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Oracle练习-PL/SQL编程基础

文章目录1、创建一个表stu,该表只有一个字段sno 类型是number(2),编写一个块,向stu表中添加数字1到10,但不包括4和7。2、为Scott用户下的emp表增加一个列stars,类型为VARCHAR2(100)。创建一个PL/SQL块,通过输入任意员工编号(&e_no),根据员工的工资计算他能获得的星号’*’数量,每100元奖励一个星号,按四舍五入处理(使用函数round)。...

唐傘皮 1214

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PL/SQL语言的字符串处理

PL/SQL是一种结合了SQL的查询能力与过程化编程语言特性的编程语言,主要用于Oracle数据库的存储过程、触发器、函数等编程环境中。它支持条件语句、循环结构、异常处理等,使得复杂的业务逻辑可以通过编程的方式实现。在PL/SQL中,字符串类型的变量定义为VARCHAR2CHAR或NCHAR等。每种类型的字符串都有自己的特点,开发者可以根据需求选择适合的字符串类型。VARCHAR2:变长度字符串,最大长度为4000字节(在某些情况下可达到32767字节)。CHAR:固定长度字符串,长度从1到2000字节。

2401_90032081的博客 1096

oracle PL/SQL编程基础

1 PL/SQL介绍 PL/SQL是在日常工作中,使用oracle数据库常用的一种编程语言,是oracle公司对标准SQL语言的过程化扩展,在SQL语句的基础上增加了编程语言的特点。主要是把数据操作和查询语句放在PL...

1989

Oracle19C入门到熟练017-PL/SQL编程

SQL也能进行编程, 你相信么?来了解一下Oracle的PL/SQL啊~

langfeiyes的博客 1408

Oracle PL/SQL自学(四):PL/SQL变量的声明与使用

1.前言 因为工作日需要上班,只能利用业余时间学习,过去五天学习了前三篇文章涉及的内容。收获大概就是对于oracle PL/SQL的理解稍进一层,虽然还是停留在表面上,但是相信随着接下来的学习,自己会对这个东西有越来越深的认识。那么接下来会正式开始PL/SQL的学习。 不多说了,出发了朋友。 前文链接: Oracle PL/SQL自学(三):数据导出 2.变量的声明和初始化 简单来说,变量的声明要...

m0_37868329的博客 3869
上一篇: “钱袋年”真的823年才一次吗?
下一篇: 哈哈,精通C++
CodeArhat
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值