【问题标题】:SQL Error: 904, SQLState: 42000 ORA-00904: : invalid identifierSQL 错误:904,SQLState:42000 ORA-00904::无效标识符
【发布时间】:2017-01-10 21:11:23
【问题描述】:

从 JDBC 或 hibernate 执行时,重复别名是否会导致错误:

SQL 错误:904,SQLState:42000 ORA-00904: : 标识符无效

select * From table_master VW
LEFT OUTER JOIN TABLE(test_func(1, 300)) vw 
ON VW.table_key = vw.function_key

仅在生产中面临这种情况。它在测试环境中运行良好。

【问题讨论】:

  • 您分配了两次vw 别名?这不可能。
  • ya.. 它就像 oracle 一样工作,不要抱怨。但是在生产中不确定为什么会出错。某些 oracle 模式可以区分大小写吗?
  • 我同意我自己可以让查询在 Oracle 12c 中工作(也许生产是在不同版本的 Oracle 上?)。但在我看来,这应该是错误。我认为查询不应该被认为是有效的,它是模棱两可的。如果我是你,我只会分配 2 个不同的别名,这确实是这里唯一明智的做法,然后再试一次。
  • 两台服务器的确切版本是什么(edit你的问题并添加select * from v$version的输出)
  • @sam_evang 你能解决吗?

标签: sql oracle hibernate jdbc


【解决方案1】:

验证与您一起执行查询的用户是否拥有 test_func() 函数的必要授权。

【讨论】:

    【解决方案2】:

    就我而言,我错过了@JoinColumn@ManyToOne(fetch = FetchType.EAGER)

    【讨论】:

      【解决方案3】:

      在我的情况下,数据库字段不存在,它正在返回 SQL 错误:904,SQLState:42000 ORA-00904::无效标识符

      创建字段后,当然可以了,

      仔细检查这些字段并确保它们匹配...

      希望能给你找到问题的线索

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-18
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        相关资源
        最近更新 更多