Oracle:ORA-00904: “10“: 标识符无效报错详解

 1.报错Oracle语句如下

SELECT YK_CKGY.ID,
       YK_CKGY.DJH,
       YK_CKGY.BLRQ,
       YK_CKGY.ZBRQ,
       YK_CKGY.SHRQ,
       YK_CKGY.YT,
       YK_CKGY.ZDR,
       YK_CKGY.SHR,
       YK_CKGY.BZ,
       YK_CKGY.JZRQ,
       YK_CKGY.ZT,
       YK_CKGY.CKLX,
       (case YK_CKGY.CKLX
         when '09' then
          '药房调借'
         when '02' then
          '科室退药'
         when '03' then
          '损耗出库'
         when '04' then
          '科室领药'
         when '06' then
          '药房退药'
         when '07' then
          '药房领药'
         when '88' then
          '领药计划'
         when '08' then
          '过期出库'
         when '10' then
          '其它出库'
       end) AS LXMC,
       YK_CKGY.BMNBBH,
       (select CO_QX_XTBM.BMMC
          from CO_QX_XTBM
         where YK_CKGY.BMNBBH = CO_QX_XTBM.BMNBBH) as DCBMMC,
       (select CO_QX_XTBM.BMMC
          from CO_QX_XTBM
         where YK_CKGY.DRBM = CO_QX_XTBM.BMNBBH) as DRBMMC,
       YK_CKGY.DRBM,
       (select sum(yk_ckmx.cksl * YK_CKMX.CBJ)
          from yk_ckmx
         where gyid = YK_CKGY.id) as jhje
  FROM YK_CKGY
 WHERE 1 = 1
   and substr(YK_CKGY.BLRQ, 1, 10) >= '2024/12/07'
   and substr(YK_CKGY.BLRQ, 1, 10) <= '2025/01/07'
   and YK_CKGY.JZRQ is null
   and (YK_CKGY.DRBM = 2202)
   and YK_CKGY.ZT = 2 and
 YK_CKGY.jgdm = '22'
   and YK_CKGY.CKLX IN ("04", "07", "03", "02", "06", "10")

2.报错原因: 

Oracle 数据库中,双引号用于引用列名、表名等标识符(区分大小写)。但是,在 SQL 中,数字或字符串应该使用单引号。因此,IN ("04", "07", "03", "02", "06", "10") 中的双引号应该替换为单引号。

3:修正: 

 IN ('04', '07', '03', '02', '06', '10')

4.其他潜在问题:

substr(YK_CKGY.BLRQ, 1, 10) 用于截取日期的前 10 位,如果 BLRQ 是日期字段,可以考虑直接使用 TO_DATE 函数来进行日期比较,避免使用 substr 来处理日期字段。

SELECT YK_CKGY.ID,
       YK_CKGY.DJH,
       YK_CKGY.BLRQ,
       YK_CKGY.ZBRQ,
       YK_CKGY.SHRQ,
       YK_CKGY.YT,
       YK_CKGY.ZDR,
       YK_CKGY.SHR,
       YK_CKGY.BZ,
       YK_CKGY.JZRQ,
       YK_CKGY.ZT,
       YK_CKGY.CKLX,
       (case YK_CKGY.CKLX
         when '09' then
          '药房调借'
         when '02' then
          '科室退药'
         when '03' then
          '损耗出库'
         when '04' then
          '科室领药'
         when '06' then
          '药房退药'
         when '07' then
          '药房领药'
         when '88' then
          '领药计划'
         when '08' then
          '过期出库'
         when '10' then
          '其它出库'
       end) AS LXMC,
       YK_CKGY.BMNBBH,
       (select CO_QX_XTBM.BMMC
          from CO_QX_XTBM
         where YK_CKGY.BMNBBH = CO_QX_XTBM.BMNBBH) as DCBMMC,
       (select CO_QX_XTBM.BMMC
          from CO_QX_XTBM
         where YK_CKGY.DRBM = CO_QX_XTBM.BMNBBH) as DRBMMC,
       YK_CKGY.DRBM,
       (select sum(yk_ckmx.cksl * YK_CKMX.CBJ)
          from yk_ckmx
         where gyid = YK_CKGY.id) as jhje
  FROM YK_CKGY
 WHERE 1 = 1
   and substr(YK_CKGY.BLRQ, 1, 10) >= '2024/12/07'
   and TO_DATE(substr(YK_CKGY.BLRQ, 1, 10), 'YYYY/MM/DD') <=
       TO_DATE('2025/01/07', 'YYYY/MM/DD')
   and YK_CKGY.JZRQ is null
   and (YK_CKGY.DRBM = 2202)
   and YK_CKGY.ZT = 2
   and YK_CKGY.jgdm = '22'
   and YK_CKGY.CKLX IN ('04', '07', '03', '02', '06', '10')

5.总结 

  1. 使用单引号来定义字符串值,例如 IN ('04', '07', '03', '02', '06', '10')
  2. 如果 BLRQ 字段是日期类型,考虑直接使用 TO_DATE 进行日期比较,而不使用 substr 来截取字符串。

 补充:

在 Vue 组件中使用正则替换双引号:

使用 replace() 替换双引号为单引号:

let str = '("04", "07", "03", "02", "06", "10")';
str = str.replace(/"([^"]+)"/g, "'$1'");

解释:

  1. 正则表达式 /\"([^\"]+)\"/g

    • \" 匹配双引号。
    • ([^\"]+) 匹配双引号内的内容,并捕获它。
    • $1 表示替换成捕获的内容。
    • g 标志表示全局匹配,即替换字符串中的所有双引号。
  2. replace() 方法

    • 将匹配到的内容替换为单引号包裹的内容。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950731.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式IO模块:激光切割机产线高效控制的创新引擎

在智能制造的浪潮中&#xff0c;激光切割技术以其高精度、高效率的特点&#xff0c;成为了现代工业生产中不可或缺的一部分。特别是在汽车制造、航空航天、电子设备及精密零部件加工等领域&#xff0c;激光切割机以其无与伦比的切割精度和灵活性&#xff0c;引领着制造业的转型…

RK3562编译Android13 ROOT固件教程,触觉智能开发板演示

本文介绍编译Android13 ROOT权限固件的方法&#xff0c;触觉智能RK3562开发板演示&#xff0c;搭载4核A53处理器&#xff0c;主频高达2.0GHz&#xff1b;内置独立1Tops算力NPU&#xff0c;可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。 关闭seli…

wireshark抓包工具新手使用教程

wireshark抓包工具新手入门使用教程 一、Wireshark软件安装二、Wireshark 抓包示范三、Wireshakr抓包界面四、Wireshark过滤器设置五、wireshark过滤器表达式的规则六、Wireshark抓包分析TCP三次握手七、Wireshark分析常用列标签格式 Wireshark是一款开源的网络协议分析工具&am…

如何用Python编程实现自动整理XML发票文件

传统手工整理发票耗时费力且易出错&#xff0c;而 XML 格式发票因其结构化、标准化的特点&#xff0c;为实现发票的自动化整理与保存提供了可能。本文将详细探讨用python来编程实现对 XML 格式的发票进行自动整理。 一、XML 格式发票的特点 结构化数据&#xff1a;XML 格式发票…

【网络安全 | 漏洞挖掘】HubSpot 全账户接管(万字详析)

未经许可,不得转载。 今天我们将分享一个关于在 Bugcrowd 平台的 HubSpot 公共漏洞赏金计划中实现全账户接管的故事。 文章目录 正文SQL 注入主机头污染(Host Header Poisoning)负载均衡器主机头覆盖(Load Balancer Host Header Override)Referer Header 测试ORIGIN Heade…

2025_0105_生活记录

3号去内蒙看了流星雨。还记得上次看流星的时间是2018年&#xff0c;也是冬天&#xff0c;大家在雁栖湖校区的操场上仰望星空。那个时候幸运的看到了一颗流星&#xff0c;便迅速地在心里许愿。这次看到了三颗流星&#xff0c;我也许了愿&#xff0c;希望实现。 24年走过了十多个…

(四)ROS通信编程——服务通信

前言 学完了话题通信其实操作流程基本都已经很熟悉了&#xff0c;因此服务通讯的学习就会流畅许多。 服务通信也是ROS中一种极其常用的通信模式&#xff0c;服务通信是基于请求响应模式的&#xff0c;是一种应答机制。也即: 一个节点A向另一个节点B发送请求&#xff0c;B接收…

《繁星路》V1.8.3(Build16632266)官方中文学习版

《繁星路》官方中文版https://pan.xunlei.com/s/VODae2_2Z3QyMF02I5y321uHA1?pwdqgsh# 作为一款星际模拟游戏&#xff0c;完美融合了硬科幻元素与基地建设玩法&#xff0c;体验改造行星的恢弘与壮阔。化身人工意识AMI&#xff0c;遵照基本指示推进火星改造的各项工作&#xf…

学习threejs,导入wrl格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.VRMLLoader wrl模型加…

Element-plus、Element-ui之Tree 树形控件回显Bug问题。

需求&#xff1a;提交时&#xff0c;需要把选中状态和半选中状态 的数据id提交。如图所示&#xff1a; 数据回显时&#xff0c;会出现代码如下&#xff1a; <template><el-tree ref"treeRef" :data"data" show-checkbox node-key"id" …

专家混合(MoE)大语言模型:免费的嵌入模型新宠

专家混合&#xff08;MoE&#xff09;大语言模型&#xff1a;免费的嵌入模型新宠 今天&#xff0c;我们深入探讨一种备受瞩目的架构——专家混合&#xff08;Mixture-of-Experts&#xff0c;MoE&#xff09;大语言模型&#xff0c;它在嵌入模型领域展现出了独特的魅力。 一、M…

cursor试用出现:Too many free trial accounts used on this machine 的解决方法

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…

若依 ruoyi-vue HandlerInterceptor 拦截器 文件接口自定义权限

文件资源添加自定义权限 package com.huida.framework.config;import com.huida.framework.interceptor.FileInterceptor; import com.huida.framework.interceptor.RequestInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springfr…

网络安全-web渗透环境搭建-BWAPP(基础篇)

01--所需系统环境&#xff1a; 虚拟主机系统部署&#xff08;vmware&#xff0c;虚拟主机创建、虚拟主机网络配置&#xff08;桥接&#xff0c;便于网络中多个主机都能访问虚拟主机&#xff09;、虚拟软件功能&#xff0c;快照、克隆、镜像文件加载&#xff0c;ova文件制作&am…

【计算机网络】课程 实验四 配置快速生成树协议(RSTP)

实验四 配置快速生成树协议&#xff08;RSTP&#xff09; 一、实验目的 1&#xff0e;理解快速生成树协议RSTP的工作原理。 2&#xff0e;掌握如何在交换机上配置快速生成树。 二、实验分析与设计 【背景描述】 某学校为了开展计算机教学和网络办公&#xff0c;建立了一个计…

API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

目标检测文献阅读-DETR:使用Transformer进行端到端目标检测

目录 摘要 Abstract 1 引言 2 DETR结构 2.1 Backbone 2.2 Encoder 2.3 Decoder 2.4 FFN 3 目标检测集合预测损失 3.1 二分图匹配损失 3.2 损失函数 总结 摘要 本周阅读的论文题目是《End-to-End Object Detection with Transformers》(使用Transformer进行端到端目…

服务器双网卡NCCL通过交换机通信

1、NCCL变量设置 export CUDA_DEVICE_MAX_CONNECTIONS1 export NCCL_SOCKET_IFNAMEeno2 export NCCL_IB_DISABLE0 #export NCCL_NETIB export NCCL_IB_HCAmlx5_0,mlx5_1 export NCCL_IB_GID_INDEX3 export NCCL_DEBUGINFOGPUS_PER_NODE4MASTER_ADDR192.168.1.2 MASTER_PORT600…

B树及其Java实现详解

文章目录 B树及其Java实现详解一、引言二、B树的结构与性质1、节点结构2、性质 三、B树的操作1、插入操作1.1、插入过程 2、删除操作2.1、删除过程 3、搜索操作 四、B树的Java实现1、节点类实现2、B树类实现 五、使用示例六、总结 B树及其Java实现详解 一、引言 B树是一种多路…

数据分析思维(八):分析方法——RFM分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python&#xff0c;更重要的是数据分析思维。没有数据分析思维和业务知识&#xff0c;就算拿到一堆数据&#xff0c;也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#xff0c;本文内容就是提取…