出现错误 - 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: 在需要数字的地方发现了非数字字符 的相关文章

  • 在 Oracle 行的多个列上使用透视

    我在 Oracle 表中有以下示例数据 tab1 我正在尝试将行转换为列 我知道如何在某一列上使用 Oracle 数据透视表 但是否可以将其应用于多个列 样本数据 Type weight height A 50 10 A 60 12 B 4
  • Oracle 中的日期字符串(以毫秒为单位)

    我想将以下字符串转换为日期 2004 09 30 23 53 48 140000000 I tried to date YYYY MM DD HH24 MI SS FF9 But PL SQL http en wikipedia org w
  • Windows 上良好的 Oracle 数据库开发和管理工具 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找像 sql server management studio 这样的 Oracle 数据库管理工具 我在互联网上搜索并在以下链接
  • 循环预定义值

    有没有办法在 oracle 中执行 for every 如下所示 begin for VAR in 1 2 5 loop dbms output put line The value VAR end loop end 我知道你可以这样做 b
  • SQL 按 IN 子句中的元素排序

    我有一个ITEM表 我想返回按 IN 子句中通知的相同顺序排序的结果 这些 ID 由用户告知 今天我有这个 SELECT FROM ITEM WHERE ITEM ID IN 45 2 671 6 ORDER BY CASE ITEM ID
  • 如何通过代码确定Oracle数据类型的字符串值?

    I use DBMS SQL DESCRIBE COLUMNS过程来确定 SELECT 查询的结果集中的列使用什么数据类型 但不幸的是这样我只能得到Oracle数据类型的代码 record col type 1 8 12 等 所以我想知道
  • Oracle SQL 分析查询 - 类似递归电子表格的运行总计

    我有以下数据 由A值 排序依据MM 月 The B列计算为GREATEST current value of A previous value of B 0 以类似电子表格的方式 我怎样才能计算B使用 SQL 查询 我尝试使用分析函数 但未
  • 如何创建从表中最大值开始的 Oracle 序列?

    尝试在 Oracle 中创建一个以特定表中的最大值开始的序列 为什么这不起作用 CREATE SEQUENCE transaction sequence MINVALUE 0 START WITH SELECT MAX trans seq
  • java.sql.SQLSyntaxErrorException: ORA-00955: 名称已被现有对象使用

    我正在使用 Oracle 11g R2 我想创建一些用户表 当我运行查询时 它创建了几个表并生成java sql SQLSyntaxErrorException ORA 00955 名称已被现有对象使用例外 Connection con p
  • Oracle 和 EDB (Postgres) 中的日期差异

    如果是甲骨文 查询 select SYSDATE TO DATE 23 03 1022 dd mm yyyy from dual 正在给出输出 SYSDATE TO DATE 23 03 1022 DD MM YYYY 21715 2233
  • SqlDeveloper:清除网络别名列表

    我使用 sql developer 连接到具有多个不同用户的多个不同的 Oracle 数据库 连接信息保存在tnsnames ora文件 以便当数据库更改服务器时 我不必手动更新与它的所有连接 我最近更新了 tnsnames 文件 现在网络
  • 在 SQL Developer 中导入数据时读取时间戳

    我正在尝试使用 SQL Developer 中的数据导入向导将文本文件读入 Oracle 数据库 我被困在第 5 步 因为我无法在导入之前获取验证参数以在我的设备上成功timestamp字段 回到步骤 4 我尝试更改我的数据类型timest
  • 如何编写Alter Table并添加新列?

    我有一个表 有 3 列 A B C 其中也有行 A 列是主键 现在 根据新的要求 我需要添加新的 D E 和 F 列 另外 我需要从 A 列中删除以前的主键 并为 D 列添加新的主键 E 列和 F 列为 NULL 请帮助我创建 alter
  • SQL在单个命令中在表中添加列和注释

    我的 Web 应用程序使用 Oracle 11g 我想向现有表添加列和注释 我可以使用以下命令轻松做到这一点 ALTER TABLE product ADD product description VARCHAR2 20 and COMME
  • Oracle - 如何向用户授予对另一个用户的对象的权限

    我需要授予用户 TARGETUSER 选择 插入 更新用户 SOURCEUSER 的所有表的权限 我可以从here https stackoverflow com questions 187886 grant select on all t
  • 如何查明选择补助金是直接获得还是通过角色获得

    Oracle 中的陷阱之一是 有时如果在 SQLplus 中运行查询 则可以从表中进行选择 但从存储过程运行查询时则不能 为了从存储过程运行查询 您需要对象的直接授权 而不是通过角色获得的授权 如果我在 all tables 视图中看到一个
  • 如何以合理的方式使用 Oracle 驱动程序的日志记录来记录 UPDATE 语句?

    我想记录我的应用程序发出的所有 SQL 所以我确切地知道它在做什么 我已经根据以下内容为 Oracle 设置了 Java Util Logging这个答案 https stackoverflow com a 40491028 216353
  • Oracle BLOB 提取非常慢

    从我管理的 oracle 10gR2 10 2 05 数据库中提取 BLOBS 时 我遇到性能问题 我有大约 400 个存储为 BLOBS 的文件 我需要将它们写入文件系统 下面是我的代码 当我执行这个过程时 前 8 个左右的文件会在几秒钟
  • 我应该对表进行分区/子分区吗?

    Case 系统有dispositives 基本上由id type name 我可能有N个dispositives 我有一张桌子来存放log of all dispositives 这是系统中最大的表 现在统计100英里记录 The log表
  • 选择语句REF oracle

    我需要一些帮助来创建将使用引用的选择语句 我设法很好地插入了值 但是当我尝试使用 where 语句提取值时 输出要么是数据类型错误 要么会输出两个表以及它们都包含的数据 这只是一个例子 Create or replace table1 Ty

随机推荐

  • 使用 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