出现错误 - ORA-01858: 在需要数字的地方发现了非数字字符

2024-01-01

我在下面的 sql 中收到错误:

ORA-01858: 在需要数字的地方发现了非数字字符

SELECT   c.contract_num,
         CASE
            WHEN   (  MAX (TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD'))
                    - MIN (TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD')))
                 / COUNT (c.event_occurrence) < 32
            THEN
              'Monthly'
            WHEN       (  MAX (
                            TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD'))
                        - MIN (
                            TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD')))
                     / COUNT (c.event_occurrence) >= 32
                 AND   (  MAX (
                            TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD'))
                        - MIN (
                            TO_CHAR (TO_DATE (c.event_dt, 'YYYY-MM-DD'), 'MMDD')))
                     / COUNT (c.event_occurrence) < 91
            THEN
              'Quarterley'
            ELSE
              'Yearly'
         END
FROM     ps_ca_bp_events c
GROUP BY c.contract_num;

您收到的错误要么是因为您正在做TO_DATE在已经是日期的列上,并且您使用的格式掩码与您的不同nls_date_format参数[1] 或因为 event_occurrence 列包含非数字数据。

您需要 a) 更正您的查询,以便它不在日期列上使用 TO_DATE,并且 b) 更正您的数据(如果 event_occurrence 应该只是数字)。

并修复该列的数据类型以确保只能存储数字。



[1] 当您执行以下操作时,Oracle 会做什么:TO_DATE(date_column, non_default_format_mask) is: TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

一般情况下,默认nls_date_format参数设置为dd-MON-yy,因此在您的查询中,可能发生的情况是您的日期列被转换为格式为 dd-MON-yy 的字符串,然后您将其转换回使用格式 MMDD 的日期。该字符串不是这种格式,因此会出现错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

出现错误 - ORA-01858: 在需要数字的地方发现了非数字字符 的相关文章

随机推荐

  • 使用 Vue 单击并编辑文本输入

    我正在寻找一个点击并编辑的 Vue 组件 我发现了a fiddle https jsfiddle net ppyeo1tg 611 并做了一些编辑 它的工作原理如下 小提琴在这里 https jsfiddle net ppyeo1tg 61
  • CakePHP 用 MAX 查找

    表格和虚拟数据 CREATE TABLE IF NOT EXISTS messages id int 11 unsigned NOT NULL auto increment user id int 11 unsigned NOT NULL
  • Mayavi:在 triangular_mesh 中插入面部颜色

    我已经拼凑了 以下代码使用指定的颜色绘制三角形网格 附加标量函数 usr bin env python import numpy as np from mayavi import mlab Create cone n 8 t np lins
  • 将元素定位在

    我有一个Fiddle http jsfiddle net pTNqe 9 其中包含一个 div 一些文本和一个按钮 我想将按钮放置在 div 的右上角 无论 div 有多大 或者 div 中有多少文本 我想像 float right pos
  • 如何在 flutter 中使用粘性组列表时选择多个项目

    在这里解释一下我想要什么 我从 GitHub 获得了这段代码 当用户开始选择项目时 我想要带有操作按钮的应用栏 就像多个项目选择和应用栏显示所选项目的数量 我可以使用 ListViewbuilder 轻松完成此操作 但不知道如何在使用粘性组
  • SwiftUI:如何仅在需要时更新从父视图传输的变量?

    我想将变量从父视图传递到子视图 但在此子视图中 在文本字段中使用它 但仅在按下 保存 按钮时更新此值 我试过这个 父视图 struct ParentView View State private var name String var bo
  • “奇怪的”C# 属性语法

    我刚刚在一个 c 项目中看到了这个 public char this int index 我认为自己是 C 新手 任何人都可以帮助它的含义是什么 它是一个索引器 索引器允许对类或结构的实例进行索引 就像 数组 索引器类似于属性 只是它们的访
  • PowerBI:将列拆分为单独的列

    我有一个正在导入的类别多选字段 其中包含多个用逗号分隔的值 农业 小额信贷 和平建设 我的主要本能是使用文本函数将每个值拆分为单独的列 但我想知道是否有更好 更简单的方法来做到这一点 好的 找到了 在数据视图中打开编辑查询 右键单击该列 拆
  • 如何从多个数据帧创建热图

    我对 R 还很陌生 并且一直困惑于如何从列表中的多个数据帧创建热图 每个数据框中有 3 列 X 位置 Y 位置 PatchStatus 第一个数据框如下所示 listofdfs lt list list of dataframes list
  • Flyway 无法连接到 docker-entrypoint-initdb.d 脚本中的 postgres 容器

    我正在尝试延长docker 的 postgres https hub docker com postgres 图像可能 通过环境变量标志 在 DB init 上执行 Flyway DB 迁移 我的 Dockerfile 在这里 FROM p
  • extjs,是否可以压缩加载ext-all.js?

    我有一个使用 extjs 库的网站 确切地说 我只需要网格 ajax 和树组件 我的项目是全国使用的 为了避免某些地区带宽低造成的问题 我必须让它尽可能的轻量 当我在chrome中使用开发者工具时 我的网站太重了 特别是在加载 ext al
  • Ruby:查找字符串中的前 N ​​个正则表达式匹配项(并停止扫描)

    想要扫描很长的字符串以查找正则表达式匹配 想知道找到前 N 个正则表达式的最有效方法是什么 例如就像是 abcabcabc scan b limit 2 如果仅扫描支持限制选项 则会在 5 个字符后成功结束 该字符串有几 MB 内存中的记忆
  • FTPWebRequest 530 错误:未登录问题

    我一直在挖掘大量关于如何在 C 中正确登录 FTP 的帖子 但当我真正尝试时 它不起作用 通过我的阅读 我开始认为这是因为我的用户名中有 at 符号 这是真的还是有其他问题 我可以使用 FileZilla 登录 没有问题 var file
  • 如何将nodejs从6.x更新到8.x?

    简单的问题 如何将nodejs从6 x更新到8 x 我有 Ubuntu 16 04 我应该卸载旧版本并安装新版本吗 如果是这样 我该怎么做 一个尝试过的 须藤最新 但它说 sudo n 未找到命令 当我刚刚 最新的 需要 sudo 卧槽 U
  • 有关 SQL Server 触发器的帮助

    假设我有3张桌子 t1 Nid name 1 aaa 2 bbb 3 ccc delT1 Nid name t2 Sid Nid value 1 1 AAA 2 1 BAC 3 2 CSA 表中t1 Nid是主键 是外键t2 现在我想要的是
  • 从 NSUrlConnection didReceiveAuthenticationChallenge 提供有意义的错误

    我正在使用 OWASP 示例证书和公钥固定 https www owasp org index php Certificate and Public Key Pinning 示例使用随机组织 http www random org and
  • 将 *.sdf 文件添加到 .gitignore 的可能影响

    我最近将一个 Visual Studio C 项目推送到了 github 我注意到 VS 创建了一个相对较大的 sdf 文件 25MB 我尝试删除工作区中的这个文件 看看 VS 是否会抛出错误 在 VS 中打开项目后 没有报告任何错误 并且
  • 我什么时候应该使用“类对象”、“类模块”、“模块内核”而不什么都不用?

    我是 ruby 元编程的新手 我看到人们在不同的地方对代码进行元编程 比如class Object class Module module Kernel和 无 即 在类 模块定义块之外 例如 我正在创建一个c attr accessor方法
  • 如何在dompdf中应用bootstrap样式

    我正在使用 bootstrap grid 来显示 我希望我的客户端以 pdf 格式下载它 因此我使用 dompdf 但 dompdf 无法应用 bootstrap 样式 我无法返回并将我的引导网格转换为基本的 html 表并使用不同的插件转
  • 出现错误 - ORA-01858: 在需要数字的地方发现了非数字字符

    我在下面的 sql 中收到错误 ORA 01858 在需要数字的地方发现了非数字字符 SELECT c contract num CASE WHEN MAX TO CHAR TO DATE c event dt YYYY MM DD MMD