如何处理 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 异常以忽略这些行? 的相关文章

  • 关于pl/sql异常的问题

    以下文字摘录自oracle文档Oracle Database PL SQL 语言参考 11g 第 1 版 11 1 未处理的异常也会影响 子程序 如果退出子程序 成功后 PL SQL 将值分配给 输出参数 但是 如果您退出 带有未处理的异常
  • Oracle 函数中的加密/解密密码

    由于以前设计不佳的结构 我必须使用的当前数据库将用户密码存储为文本 现在 我正在构建一个必须使用这些密码的前端部分 我当然不想发送未加密的密码 我的想法是编写一个 Oracle 函数来加密和解密文本密码 并在存储过程中使用这些函数来返回加密
  • 在 apex 中根据 2 种不同类型的用户进行自定义身份验证

    我有一种身份验证方案 目前仅验证用户是否在一个表中 即雇主表中 现在我希望这个身份验证方案来验证用户是雇主还是雇员 并且根据他们是雇主还是雇员 它应该将他们重定向到不同的页面 首先 我如何在身份验证脚本中包含第二个表 我最大的问题是 当员工
  • Oracle DB & SQL Developer:“错误报告:执行已完成,但有警告” - 如何*查看*该警告?

    我正在设置一个本地 Oracle 11g 数据库 我们已经运行的另一个数据库的克隆 我正在 SQL Developer 中运行一堆生成的 PL SQL 命令 我得到输出 Error starting at line x in command
  • ORACLE SQL 中的 MAX()

    我有一个表 存储已完成的维护任务的记录列表以及完成的日期和时间 我正在尝试执行子查询来提取具有最新日期的每个任务的记录 我的SQL语句是 SELECT ENGINEERING COMPLIANCE EO AS EO ENGINEERING
  • VS2012 - VS2013 - VS2015 - VS2017 - VS2019 的水晶报表

    我在一台新电脑上安装了 VS2012 Ultimate 我尝试在我的项目中添加 Crystal Reports 文件 但 VS2012 的 添加新项目 菜单中没有可用的水晶报表 crt 项目 有VS2012的版本吗 或者我是否必须为水晶报告
  • 托管 ODP.NET 驱动程序未显示在“数据源”对话框中

    在我的计算机上安装托管 ODP NET 后 ODP NET 托管驱动程序没有出现在里面选择数据源Visual Studio 2013 Professional 中的对话框 它应该是这样的 这就是它在我的机器上的实际外观 我已按照 轻松驱动
  • C# 中强制关闭 oracle 连接

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

    我有两个结构相同的表 一个是临时的 另一个是产品的 每次都会加载整个数据集 有时该数据集会从先前的数据集中删除记录 我首先将数据集加载到临时表中 如果删除了任何记录 我也想从产品表中删除它们 那么如何找到prod中存在但temp中不存在的记
  • where 子句中忽略空白字符

    我做了以下事情 create table test col char 10 insert into test values hello select from test where col hello 有人建议我上面的内容不应返回任何结果
  • Oracle 11g XE - 突然出现 ORA-01034: ORACLE 不可用且 ORA-27101: 共享内存领域不存在

    Windows 7 32 位笔记本电脑 Oracle 11g XE 的本地实例 首先 在提出问题之前 我自己一直在研究这个问题 虽然有很多参考 建议 但我无法自己解决这个问题 突然 当我尝试登录本地 Oracle 11g XE 爱好者实例时
  • 我怎样才能等到所有调度程序作业完成?

    我是我的包裹 我正在排队多个作业 如下所示 dbms scheduler create job job name gt p job name job type gt PLSQL BLOCK job action gt p sql code
  • 在 PL/SQL 块中定义引用其自身集合的记录类型

    如何在 PL SQL 匿名块中定义包含自身集合属性的记录类型 看下面的例子 DECLARE type t item is record name varchar2 64 children t items referencing t item
  • 在 Oracle 过程中实现多线程

    我正在研究 Oracle 10gR2 这是我的问题 我有一个程序 我们称之为 proc parent 在包内 应该调用另一个过程 让我们调用它 用户创建 我得打电话 用户创建 在一个循环中 它从表中读取一些列 并且这些列值作为参数传递给 用
  • Oracle 11g OFFSET FETCH 给出错误

    我正在进行查询并尝试从数据库中获取随机数量的行 但 Oracle 一直告诉我我的命令尚未正确结束 select from random table order by random column name offset 0 rows fetc
  • 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
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • 如何在 Hibernate 中自动递增复合主键中的 Id?

    我有一个带有复合主键的表 groupId and batchId 实体类看起来像 Entity name EMPLOYEE public class Employee EmbeddedId private EmployeePK employ

随机推荐

  • 如何为 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 这工作正常 但我唯一担心的是日期可能并不总