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

news2025/1/9 9:32:18

 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() 方法

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

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进阶篇-Day17:JAVA的日志、枚举、类加载器、反射等介绍】

目录 1、日志1.1 日志概念1.2 日志框架&#xff08;1&#xff09; Logback框架&#xff1a;&#xff08;2&#xff09;配置文件介绍&#xff1a; 2、枚举3、类加载器3.1 类加载器的介绍3.2 类加载器的加载过程&#xff1a;加载、链接、初始化3.3 类加载器的分类3.4 双亲委派模式…

GPU算力平台的应用之任意门:任意穿搭匹配模型的应用教程

大家好&#xff0c;今天给大家介绍一下&#xff1a;GPU算力平台的应用之任意门:任意穿搭匹配模型的应用教程。 文章目录 一、GPU算力平台概述人工智能智能发展为什么需要GPU算力平台 二、注册与登录账号注册流程 三、平台的应用之Anydoor应用启动器选择Anydoor的应用场景Anydoo…

阿里云代理商热销产品推荐

在数字化浪潮的推动下&#xff0c;企业对于云计算的依赖日益加深。阿里云&#xff0c;作为中国领先的云计算服务提供商&#xff0c;为企业提供了丰富多样的云产品和服务。本文将聚焦于阿里云代理商热销产品推荐&#xff0c;探讨其如何帮助企业高效利用云资源&#xff0c;加速数…

漏洞扫描工具

完整源码项目包获取→点击文章末尾名片&#xff01; 漏洞检测 该模块主要是对目标Web系统进行安全漏洞扫描&#xff0c;包括SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;、弱密码、中间件漏洞。中间件漏洞扫描包括对Weblogic、Struts2、Tomcat 、Jboss、Drupal、Nexus的已…

SAP 销售确认收入的科目确定是由什么确定的?以及如何后台配置

财务同事问我&#xff0c;对销售单进行销售收入时确定收入科目是否是关联公司科目&#xff0c;我想当然的认为是由于客户主数据的贸易伙伴来决定的。后来查了一下配置&#xff0c;发现我搞错了。原来是通过客户的账号组来确定的。 然后我查了一下资料。分享如下&#xff1a; …

Kafka运维指南

一、Kafka架构概述 Kafka是一种分布式消息队列系统&#xff0c;采用发布 - 订阅模式&#xff0c;主要由生产者&#xff08;Producer&#xff09;、消费者&#xff08;Consumer&#xff09;、代理&#xff08;Broker&#xff09;和Zookeeper组成。 生产者&#xff1a;负责向Kaf…

Hadoop 实战笔记(一) -- Windows 安装 Hadoop 3.x

环境准备 安装 JAVA 1.8 Java环境搭建之JDK下载及安装下载 Hadoop 3.3.5 安装包 Hadoop 下载&#xff1a;https://archive.apache.org/dist/hadoop/common/ 一、JAVA JDK 环境检查 二、Hadoop(HDFS)环境搭建 1. 解压安装文件 hadoop-3.3.5.tar 2. 配置环境变量 HADOOP_HO…

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

rabbitmq——岁月云实战笔记

1 rabbitmq设计 生产者并不是直接将消息投递到queue,而是发送给exchange,由exchange根据type的规则来选定投递的queue,这样消息设计在生产者和消费者就实现解耦。 rabbitmq会给没有type预定义一些exchage,而实际我们却应该使用自己定义的。 1.1 用户注册设计 用户在…

江科大STM32入门——SPI通信笔记总结

wx&#xff1a;嵌入式工程师成长日记 &#xff08;一&#xff09;简介 四根通信线&#xff1a;SCK、MOSI、MISO、SS(片选信号) 同步&#xff08;同步通信是一种通信模式&#xff0c;在这种模式下&#xff0c;发送方和接收方在同一时刻进行数据传输。&#xff09;&#xff0c;全…

Tableau数据可视化与仪表盘搭建-可视化原则及BI仪表盘搭建

目录 可视化原则 BI仪表盘搭建 仪表盘搭建原则 明确仪表盘主题 仪表盘主题拆解 开发设计工作表 经营情况总览&#xff1a;突出显示的文字 经营数据详情&#xff1a;表格 每日营收数据&#xff1a;多轴折线图 每日流量数据&#xff1a;双轴组合图 新老客占比&#xf…

Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问

在访问网页的时候&#xff0c;因为浏览器自身的安全设置问题&#xff0c; 对于https的网页访问会出现安全隐私的提示&#xff0c; 甚至无法访问对应的网站&#xff0c;尤其是chrome浏览器&#xff0c; 因此本文主要讲解如何设置chrome浏览器的设置&#xff0c;来解决该问题&…

微软发布AIOpsLab:一个开源的全面AI框架,用于AIOps代理

在当今这个云计算技术迅猛发展的时代&#xff0c;企业面临着前所未有的挑战与机遇。随着云基础设施的日益复杂化&#xff0c;它们成为了企业运营不可或缺的支柱。网站可靠性工程师&#xff08;Site Reliability Engineers&#xff0c;简称SRE&#xff09;和DevOps团队肩负着关键…

Pixel 6a手机提示无法连接移动网络,打电话失败!

1、开启VoLTE 2、如果没有&#xff0c;下载shizuku和PixelIMS应用。 shizuke Releases RikkaApps/Shizuku GitHub PixellMS Release v1.2.8 kyujin-cho/pixel-volte-patch GitHub 3、安装shizuke启动&#xff0c;开通root可以直接点击下面的启动&#xff0c;如果没有就…

【Arm】Arm 处理器的半主机(semihosting)机制

概览 通过 semihosting 机制&#xff0c;主机可以通过调试器使用目标计算机 IO 接口。 例如开发者的 PC 通过 J-Link 来使用 STM32 MCU 的输入输出。 这些功能的示例包括键盘输入、屏幕输出和硬盘 I/O。例如&#xff0c;可以使用此机制启用 C Library 中的函数&#xff0c;如…

Wireshark 学习笔记1

1.wireshark是什么 wireshark是一个可以进行数据包的捕获和分析的软件 2.基本使用过程 &#xff08;1&#xff09;选择合适的网卡 &#xff08;2&#xff09;开始捕获数据包 &#xff08;3&#xff09;过滤掉无用的数据包 &#xff08;4&#xff09;将捕获到的数据包保存为文件…

2025-01-06 Unity 使用 Tip2 —— Windows、Android、WebGL 打包记录

文章目录 1 Windows2 Android2.1 横版 / 竖版游戏2.2 API 最低版本2.3 目标帧率2.3.1 targetFrameRate2.3.2 vSyncCount2.3.3 Unity 默认设置以及推荐设置2.3.4 Unity 帧率托管 3 WebGL3.1 平台限制3.2 打包报错记录 13.3 打包报错记录 2 ​ 最近尝试将写的小游戏打包&#xff…

湘潭大学人机交互复习

老师没给题型也没划重点&#xff0c;随便看看复习了 什么是人机交互 人机交互&#xff08;Human-Computer Interaction&#xff0c;HCI&#xff09;是关于设计、评价和实现供人们使用的交互式计算机系统&#xff0c;并围绕相关的主要现象进行研究的学科。 人机交互研究内容 …

基于FPGA的出租车里程时间计费器

基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 &#xff08;1&#xff09;&#xff1b;里程计费功能&#xff1a;3公里以内起步价8元&#xff0c;超过3公里后每公里2元&#xff0c;其中…

基于FPGA的洗衣机控制器电子定时器

文章目录 功能描述 一、框架 二、verilog代码 控制模块实现 三、视频上板效果展示 功能描述 &#xff08;1&#xff09;定时启动正转20秒暂停10秒反转20秒暂 停10秒&#xff0c;定时未到回到“正转20秒暂停10秒……”&#xff0c;定时到则停止; 若定时到&#xff0c;则停…