SELECT 1 FROM DUAL ,未找到要求的 FROM 关键字

Posted 364.99°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SELECT 1 FROM DUAL ,未找到要求的 FROM 关键字相关的知识,希望对你有一定的参考价值。

1. 解决方案

背景描述: 项目需要将mysql数据库换成Oracle数据库,配置好数据源后,启动报错:

解决方案:

  • application.yml 中修改(配置了多数据源):
spring:
	datasource:
		dynamic:
			druid:
				validationQuery: SELECT 1 FROM DUAL
  • application.yml 中修改(没配置多数据源):

    spring:
    	datasource:
    		validationQuery: SELECT 1 FROM DUAL
    

2. DUAL

DUAL: 一张虚拟表,输出一条记录。

  • DUAL 中输出一个常量 1

    SELECT 1 FROM DUAL
    
    • 对于 Oracleselect 必须有表名,所以不能省略 from dual
    • 对于 MySQLselect 可以省略表名
  • application.yml 中,通过此配置用来检测数据库是否有效

    spring:
    	datasource:
    		validationQuery: SELECT 1 FROM DUAL
    
  • 一些案例:

    # 检查数据库是否在线——1—在线
    SELECT 1 FROM DUAL
    
    # 查看当前用户——用户名@主机ip
    SELECT USER() FROM DUAL;
    
    # 查看当前时间
    SELECT SYSDATE() FROM DUAL;
    

以上是关于SELECT 1 FROM DUAL ,未找到要求的 FROM 关键字的主要内容,如果未能解决你的问题,请参考以下文章

在插入多行时,语句“select 1 from dual”的作用是啥?

select XX.nextval from dual

java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字

oracle+mybatis报“未找到要求的from关键字”错误?

将'select from dual'作为参数传递给java可调用语句

ORA-00904 在 DATE 列上使用“MERGE INTO”和“SELECT FROM dual”时出现“无效标识符”错误