问题标签 [ora-00918]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
17315 浏览

sql - 合并和连接两个不同编号的表。列和相同的列名

我试图将fus_shift 表和根表组合成一个新表,该表是最终表,但它输出类似于“第 2 行的错误:ORA-01789:查询块的结果列数不正确”。我也尝试加入表作为我的替代方案,但它也输出“第 3 行的错误:ORA-00918:列不明确定义”。有没有另一种方法来组合和连接两个具有不同列数并分别具有相同列名的表?再次感谢:-)

代码错误:
create table final as
select * from fus_shift
union
select * from root;

代码错误:
select record_num,test_num,t_date,t_time,system_type,category,comments,val
from fus_shiftrpt,root
where record_num=record_num;

我的桌子:

强调文本

0 投票
3 回答
15064 浏览

sql - 在 Oracle ANSI 连接中混合使用“USING”和“ON”

我写了一个这样的 Oracle SQL 表达式:

当我尝试运行它时,Oracle 在“ON”自连接行中抛出错误:“ORA-25154:USING 子句的列部分不能有限定符”。

如果我省略“am”限定词,它会显示:“ORA-00918:列不明确定义”。

解决此问题的最佳方法是什么?

0 投票
2 回答
205 浏览

mysql - MySQL 开发人员在这里——在 Oracle 10g 中使用 select * 进行嵌套?

我正在编写一个简单的诊断查询,然后尝试在 Oracle 10g SQL Scratchpad 中执行它。编辑:它不会在代码中使用。我正在嵌套一个简单的“Select *”,它给了我错误。

在 Oracle 10g Enterprise Manager Console 的 SQL Scratchpad 中,此语句运行良好。

如果我尝试将其包含在 Select * from () tb2 中,则会收到错误消息“ORA-00918:列不明确定义”。我不认为这种说法会发生这种情况,所以我有点困惑。

据我所知,您应该始终能够使用此结构从另一个 select * 语句的结果集中选择 * ......对吗?

Oracle/10g/scratchpad 是否试图强迫我接受某种语法结构以防止过度嵌套?这是暂存器中的错误还是有关 oracle 工作原理的问题?

0 投票
9 回答
75662 浏览

sql - SQL:如何根据两个字段查找重复项?

我在 Oracle 数据库表中有行,对于两个字段的组合应该是唯一的,但表上没有设置唯一约束,因此我需要使用 SQL 自己查找所有违反约束的行。不幸的是,我微薄的 SQL 技能无法胜任这项任务。

我的表有三个相关的列:entity_id、station_id 和 obs_year。对于每一行,station_id 和 obs_year 的组合应该是唯一的,我想通过使用 SQL 查询将它们刷新出来来确定是否存在违反此规则的行。

我已经尝试了以下 SQL(由this previous question建议),但它对我不起作用(我得到 ORA-00918 列的定义不明确):

有人可以建议我做错了什么,和/或如何解决这个问题?

0 投票
2 回答
1449 浏览

java - PreparedStatement 错误

我有两个 select 语句,并为这两个语句创建“union all”。然后,我使用 PreparedStatement,当我将 String 设置为此preparedStatement 时,它显示“java.sql.SQLException: Missing IN or OUT parameter at index:: 2”。

在我参观了谷歌之后,有些人对每个“?”都这么说。在 sql 语句中,我应该写 setString。对于我的情况,我有两个选择语句,所以我有两个“?” 但我“联合所有”,所以我不确定是否假定一个“?” 或两个“?”。但是当我试图写两个 setString 像 preparedStatement.setString(1,ApplicationNo); PreparedStatement.setString(2,ApplicationNo); ,它显示“ORA-00918:列定义不明确”。

我不知道如何解决这个问题。

我的工会选择声明是

setString 是preparedStatement.setString(1,ApplicationNo);

当我搜索 setString 示例时,如果有两个 setString 类,则有两个不同的参数

但是对于两个选择语句,我都需要 ApplicationNo。

0 投票
1 回答
184 浏览

asp.net - asp.net 错误:列模糊定义,当迁移到其他服务器时

我有 ASP.Net 应用程序,它使用混合 .net 框架,有带有 .net 框架 1、2.0 和 3.5 的项目。但是它们位于单独的项目/位置。而且它之前运行良好。当我将应用程序从旧开发服务器迁移到新服务器时遇到问题,仅供参考,我的旧服务器是带有 oracle 10g 的 windows server 2003 32 位,而我的新服务器是带有相同 oracle 版本的 windows server 2008 64bit。我在两台服务器中都设置了相同的所有配置。使用相同的数据库模式和相同的应用程序。总的来说,应用程序运行良好,但是当我在新服务器上运行应用程序时发现一些错误页面时,我感到很惊讶。错误消息是:ORA-00918:列不明确定义 我不知道错误是如何发生的,而在旧服务器中,配置相同完全没有错误。

有人有同样的问题吗?是因为 32bit & 64bit 吗?

我会非常感谢你的解决方案。:)

0 投票
5 回答
15929 浏览

sql - 为什么 Oracle 不为此查询提出“ORA-00918:列不明确定义”?

我刚刚在 Oracle 中遇到了一个奇怪的行为,我希望 ORA-00918 会被引发,但事实并非如此。以这个查询为例。

此查询名义上是在查找禁用触发器的表的详细信息,但请注意,这不是我要解决的问题。问题不是这个查询所独有的,数据字典、视图或表;据我所知,它适用于任何一组表或视图(来自我尝试过的两个或三个)。

无论如何,尝试运行这个查询,你会得到 ORA-00918,因为两者USER_TABLES都有USER_TRIGGERS一个名为STATUSso 的列,以便让查询运行WHERE子句需要更改为TRG.STATUS. 好的,很酷,但尝试加入另一个表。

这个查询,没有限定你的意思是哪个 STATUS 列,神奇地工作!不用管语义或查询返回的内容,没有错误。 USER_CONSTRAINTS甚至还有一个名为的列STATUS,那么为什么当有两列可供选择时它不知道该怎么做,但如果有更多的歧义也没关系?

顺便说一句,这一切都在 10.2.0.3.0 上,如果您的查询中有两个以上的表,则本质上会停止引发 ORA-00918。如果这是一个 Oracle 错误,有谁知道它是什么时候修复的,那么如果我们的数据库升级,哪个 Oracle 版本可能会导致牛仔查询崩溃?

更新

感谢 BQ 证明该错误已在 11.2.0.1.0 中修复。任何可以在早期版本中修复它的人的赏金!

0 投票
2 回答
2740 浏览

sql - SQL“列定义不明确”-从休眠状态运行时

当我从 sqldeveloper 运行 SQL 查询时,它运行良好当我从 Hibernate SQL 会话运行相同的查询时,它给了我:“ORA-00918: column ambiguously defined”错误。
死掉休眠生成任何可以用来调试错误的sql日志?

编辑:这里是 sql :(从 sqldeveloper 工作正常)

0 投票
2 回答
1440 浏览

c# - Oracle 查询中的列不明确定义错误

我有这样的代码。

但是当我运行这个页面时,我得到了这样的错误。

0 投票
4 回答
212042 浏览

sql - ORA-00918: 列在 SELECT * 中定义不明确

获取 ORA-00918:列定义不明确:运行此 SQL:

请问有什么建议吗?