如何处理 SELECT 语句中的 to_date 异常以忽略这些行?

2024-01-02

我有以下查询,我试图将其用作我正在处理的水晶报告中的命令。

SELECT * FROM myTable
WHERE to_date(myTable.sdate, 'MM/dd/yyyy') <= {?EndDate}

这工作正常,但我唯一担心的是日期可能并不总是采用正确的格式(由于用户错误)。我知道当 to_date 函数失败时它会抛出异常..是否可以以忽略 SELECT 语句中相应行的方式处理此异常?否则,如果整个数据库中只有一个日期格式不正确,我的报告就会中断。

我查看了 Oracle 是否提供了 isDate 函数,但似乎您应该只处理异常。任何帮助将不胜感激。谢谢!!


与 Tony 的评论相呼应,您最好将日期存储在 DATE 列中,而不是强制前端查询工具查找和处理这些异常。

但是,如果您遇到不正确的数据模型,早期版本中最简单的选择是创建一个执行转换并处理错误的函数,

CREATE OR REPLACE FUNCTION my_to_date( p_date_str IN VARCHAR2,
                              p_format_mask IN VARCHAR2 )
  RETURN DATE
IS
  l_date DATE;
BEGIN
  l_date := to_date( p_date_str, p_format_mask );
  RETURN l_date;
EXCEPTION
  WHEN others THEN
    RETURN null;
END my_to_date;

然后你的查询将变成

SELECT * 
  FROM myTable
 WHERE my_to_date(myTable.sdate, 'MM/dd/yyyy') <= {?EndDate}

当然,您很可能想要一个基于函数的索引MY_TO_DATE调用以使该查询相当有效。

在 12.2 中,Oracle 添加了扩展to_date and cast处理错误转换的函数

SELECT * 
  FROM myTable
 WHERE to_date(myTable.sdate default null on conversion error, 'MM/dd/yyyy') <= {?EndDate}

您还可以使用validate_conversion如果您正在查找所有有效(或无效)日期的行,请使用此函数。

SELECT *
  FROM myTable 
 WHERE validate_conversion( myTable.sdate as date, 'MM/DD/YYYY' ) = 1 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 SELECT 语句中的 to_date 异常以忽略这些行? 的相关文章

  • Oracle 函数中的加密/解密密码

    由于以前设计不佳的结构 我必须使用的当前数据库将用户密码存储为文本 现在 我正在构建一个必须使用这些密码的前端部分 我当然不想发送未加密的密码 我的想法是编写一个 Oracle 函数来加密和解密文本密码 并在存储过程中使用这些函数来返回加密
  • 如何在oracle日志中打印http请求

    我们正在使用以下方式调用外部 URLUTL HTTP方法并设置 HTTP 标头 例如basic authentication keep alive content soap action所以我需要打印我设置为标题的内容 DBMS OUTPU
  • ORACLE SQL 中的 MAX()

    我有一个表 存储已完成的维护任务的记录列表以及完成的日期和时间 我正在尝试执行子查询来提取具有最新日期的每个任务的记录 我的SQL语句是 SELECT ENGINEERING COMPLIANCE EO AS EO ENGINEERING
  • 如何将 SQL 查询结果导出为 csv 样式格式的字符串,然后将其保存到 Oracle 中的 clob 中?

    我有以下问题 我有一个表 Source Data 实际上 有很多不同的源表 我需要将其中的一些数据导出到 Result Table 中 对于每个源表 我都有一些返回数据的 sql 并且需要将其转换为类似 csv 的字符串 例如 Source
  • Oracle SQL 从零件创建日期

    我在数据库中有两个日期字段 名为 EFFECTIVE DATE 和 POINT DATE 如何创建新的日期字段 其中日期由 EFFECTIVE DATE 年份 POINT DATE 月份和 POINT DATE 日期组成 我通常会使用 Da
  • C# 中强制关闭 oracle 连接

    我有一个报告窗口 显示从可能长时间运行的 Oracle 存储过程返回的结果 我的问题是 当用户关闭窗口时 与 Oracle 的连接保持打开状态 并且可能长时间运行的报告不会被取消 关闭打开的连接的唯一方法是 DBA 手动终止它们或用户退出整
  • 想要在Sql中获取两列的差异

    我想获取表的列的差异 我们的列名称为 Planned date 所以现在我想获取这两列的差异 A Planned Date of stop1 Planned Date of stop5 那么我如何编写查询来获取 A 的值 下面是我编写的示例
  • 我怎样才能等到所有调度程序作业完成?

    我是我的包裹 我正在排队多个作业 如下所示 dbms scheduler create job job name gt p job name job type gt PLSQL BLOCK job action gt p sql code
  • 如何从 Oracle 中获取格式化的 XML

    我对 Oracle 缺乏经验 并且在将数据导出为 XML 时遇到问题 我已经设法让这个查询正常工作 但 XML 的格式似乎是固定的 对我来说不起作用 这是查询 SELECT value em getClobVal AS output FRO
  • 如何通过ODBC检索Oracle数据库函数的结果?

    我在通过 ODBC 调用 Oracle 存储函数 而不是过程 时遇到问题 我的函数非常简单 它只是连接两个字符串 我可以通过以下方式调用它 rs c execute SELECT add str yogi bubu FROM dual fo
  • 如何在没有可用行选择器的情况下为 APEX 21.1 REST 数据源设置数据配置文件

    我正在使用 APEX 21 1 并为 Web 服务创建了一个 REST 数据源 该服务以以下格式返回响应 1499040000000 A time stamp 0 01634790 A value etc 1499040000100 A t
  • PL/SQL 过程成功完成但没有显示任何内容

    我有以下过程代码 create or replace PROCEDURE Ventas cliente p DNI IN CHAR IS CURSOR c pedidos clientes IS SELECT FROM Pedidos ve
  • Oracle 中的函数与过程

    Oracle 中函数和过程的主要区别是什么 如果我可以用函数完成所有事情 为什么我必须使用过程 如果我无法在sql语句中调用过程 好吧 我会编写一个函数来完成相同的工作 过程不返回值 好的 在任何 dml 操作后我将仅返回 sql rowc
  • 将 OraclePreparedStatement 与 DBCP 连接结合使用

    我正在尝试使用 dbcp 框架为我的 oracle 服务器创建一个连接池 我用过这个tutorial http web archive org web 20120615100115 http www freshblurbs com 80 j
  • Oracle中如何检测4字节UTF8字符

    我们已经看到oracle中存储了4字节的UTF 8字符 我们需要检测特定列中有多少行包含此类字符 尝试了这里给出的建议 UTF 16 补充字符 https stackoverflow com questions 34720830 how t
  • 在 jdbc 程序中使用时,通过 SQL 客户端插入表中的记录未显示

    我使用 SQL 客户端和 JDBC 程序将几行插入到我的表 EMP 中 使用 SQL 客户端插入的记录不会显示在 Java 的输出控制台中 我正在使用 Java 8 和 oracle 11g 数据库来插入和读取数据库 除了通过 SQL 客户
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • 替换 Oracle 包的一部分

    我需要修改包内的一个过程 我需要接触声明和实施 由于我正在维护每次修改的补丁文件 因此我希望更改最小化 我可以仅使用更改的过程更新包 如果是 如何更新 还是需要提供完整的包定义和实现 您需要替换整个包规范和主体 您不能仅对包的一部分进行操作
  • 如何在Oracle中使用Timestamp_to_scn和Scn_to_timestamp?

    我的查询结果是这样的 select cast to date a start time mm dd yyyy hh mi ss pm as timestamp date of call ora rowscn from calling tab
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on

随机推荐

  • 如何为 Window Store 构建 Electron 应用程序?

    帮助构建 Window Store 的 Electron 应用程序 我为电子编译了一个简单的应用程序 我按照官方网站的说明进行尝试 我运行命令 electronics windows store input directory C Brai
  • spring-boot 如何提供特定的 url?

    以我之前的经验来看 当使用纯servlet 我们定义 servlet 以便它可以处理与特定 url 匹配的请求 使用时struts2 我们定义一个过滤器 以便它为匹配特定 url 的请求提供服务 使用时springMVC在传统的 xml 配
  • 简约 Qt 构建的推荐标志

    我正在尝试构建 Qt 因为 Visual Studio 2010 需要它 构建脚本 configure exe 非常简单 但默认情况下需要很长时间才能编译 在配备 SSD 的快速笔记本电脑上等待了一个小时后 我放弃了 不使用任何标志 仅使用
  • Visual Studio 2019 无法识别 tsconfig.json

    我刚刚安装了 Visual Studio 2019 并尝试了我当前的解决方案 似乎它忽略了tsconfig json文件 而它在 VS 2017 中工作 在 Visual Studio 2017 中的项目属性 TypeScript Buil
  • 如何使用PHP调用python脚本实时返回结果?

    我使用PHP调用python脚本成功并得到了结果 但我必须等待脚本运行结束而没有任何输出 它看起来对我的客户不友好 如何将脚本结果实时返回到PHP Web 例如 对于下面的代码 我希望 PHP Web 将实时显示输出消息 而不是在最后一起显
  • Xamarin Monodroid:WP7 => Android 和自定义控件?

    我正在使用 Xamarin Monodroid 将一些 Windows Phone 应用程序移植到 Android 我对 Xamarin 的东西还很陌生 实际上刚刚购买了许可证 到目前为止 在 AXML 中重新创建 XAML UI 方面效果
  • Heroku 推送问题

    我在将应用程序推送到 Heroku 时遇到问题 以下是我尝试使用 git push heroku master 时的终端输出 Counting objects 22 done Delta compression using up to 8
  • 谷歌在搜索结果中以不同方式显示网站标题

    Google 以与预期不同的方式显示我网站的页面标题 页面标题应该是 布莱顿和刘易斯 平面设计师刘易斯 沃利斯平面设计 它在必应 雅虎和我的实际网站上显示良好 然而 谷歌以不同的方式显示它 刘易斯 沃利斯平面设计 平面设计师布莱顿和刘易斯
  • 如何在 Power BI 中按度量筛选结果

    我需要能够按度量进行筛选 以便在 Power BI 中显示更精细的结果 我希望能够选择百分比在某个范围内的位置 或者 100 我对度量的计算是这样的 每列只能是 1 或 0 errorPercentage CALCULATE SUM mis
  • React/react hooks:状态更改后子组件不重新渲染?

    我正在react react hooks中编写一段代码 尝试执行以下操作 从父组件获取对象数组作为 prop 使用将其设置为状态useState钩 根据预期的过滤器 时间和评级 对状态进行排序 然后重新渲染子组件 我看到的是 下面的代码在排
  • 如何在 Spark 中向 Kryo 注册 InternalRow

    我想使用 Kryo 序列化运行 Spark 因此我设置spark serializer org apache spark serializer KryoSerializer and spark kryo registrationRequir
  • Apache - 本地主机访问文件夹的域 http://folder.local

    我在 Ubuntu 上运行 XAMPP 我想为我的项目创建一个虚拟主机 这样我就可以为我的服务器根目录 例如 local 分配一个 tld 并且可以通过 URL 访问其中的文件夹 如下所示http foldername local 另外 使
  • 使用ExecutorService并行重复执行多个类似的任务

    Java 代码简化后如下所示 while someCondition SomeType a CalcResult param1 SomeType b CalcResult param2 SomeType c CalcResult param
  • 在对揭示模块进行单元测试时如何存根私有函数

    我一直在构建一个节点模块 它包装了对 GitHub API 的许多调用 并以我无限的智慧使用揭示模块模式构建了这个模块 使我的包装函数保持私有 只公开简单的方法 请参阅下面的示例 github shortcuts function var
  • 既然元组是不可变的,为什么对它们进行切片会生成副本而不是视图?

    据我了解 元组和字符串是不可变的 可以进行优化 例如重复使用不会改变的内存 然而 Python 中并未包含一项明显的优化 即使元组切片引用与原始元组相同的内存 我知道不包括此优化 因为当我对以下函数进行计时时 所花费的时间类似于 O n 2
  • Django - 无法加载静态文件?

    对 Django 非常陌生 我正在尝试遵循 youtube 上的 senddex 的教程 Django 版本 1 9 选择本教程中使用的版本 我似乎不知道如何获得css要加载的文件 的位置css file media xxx django
  • 将 Objective-C 块声明为变量的最佳实践

    我对声明的最佳实践有疑问块作为变量 最初我这样写了我的块变量 id actionHandler UIAlertAction action Handling code 稍后像这样使用 UIAlertAction action UIAlertA
  • 使用 protobuf 的 i386 架构的未定义符号

    我正在尝试制作一个使用协议缓冲区的应用程序 我收到此错误 知道为什么吗 Ld Users fmota Library Developer Xcode DerivedData PBTest gvudadeakgzklbekugyiqyfypr
  • 用于视频下载的 YouTube API

    我想创建一个能够从 youtube 下载视频的 PHP Java 应用程序 我认为 google 没有直接的 youtube api 有任何第三方 api 可用吗 请帮我 您可以使用第三方应用程序clive http clive sourc
  • 如何处理 SELECT 语句中的 to_date 异常以忽略这些行?

    我有以下查询 我试图将其用作我正在处理的水晶报告中的命令 SELECT FROM myTable WHERE to date myTable sdate MM dd yyyy lt EndDate 这工作正常 但我唯一担心的是日期可能并不总