oracle未明确定义列[通俗易懂]

oracle未明确定义列[通俗易懂]分类:SQL使用技巧2012-04-0616:121332人阅读评论(0)收藏举报运行环境:Oracle10gsqlplus环境下。 在查询语句中,经常会出现一个错误: SQL基础:ORA-00918:未明确定义列的错误。 当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

分类: SQL 使用技巧

1332人阅读
评论(0)
收藏
举报

运行环境:Oracle10g sqlplus环境下。 
在查询语句中,经常会出现一个错误: 
SQL基础:ORA-00918:未明确定义列的错误。 

当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 
时,就会报未明确定义列的错误。 

第一种情况: 
1.单表时: 
比如fconsign表中存在三个字段:fcsg_consign_id,fcsg_consign_type,fcsg_consign_status 
SELECT FCSG_CONSIGN_ID FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T
这个SQL语句就会报错,因为在T中FCSG_CONSIGN_ID有两个字段,导致DBMS无法确定要查询的哪个列 
SELECT FCSG_CONSIGN_STATUS FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T 
这样就不会报错了,T中FCSG_CONSIGN_STATUS只有一个,这样就不会报错了。 

总而言之:在嵌套查询中,外查询的字段在子查询中只能出现一个,否则则无法确定是要查哪个字段。就会报 未明确定义列的错误。 

2.多表联合查询 
比如表A,B中都有a字段。 
select a from A,B 这样就要报错。因为也是无法确定查 

哪一列。需要明确定义A.a活着B.a (如果在from语句后面为表取了别名,比如 select s_no,s_name,s_score,s.class_no,class_name from student s join class c on (s.class_no = c.class_no)的时候, 则 select语句中那个被多张表都拥有的相同字段名也需要用别名标识 如:s.class_no.)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185748.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月5日 上午10:46
下一篇 2022年10月5日 上午11:00


相关推荐

  • 查看文件句柄数 linux_linux文件句柄数量怎么看

    查看文件句柄数 linux_linux文件句柄数量怎么看查看系统的最大文件句柄数和文件句柄的使用者PIDulimit-n查看当前系统的最大句柄数显示如下ulimit-HSnx设置当前系统的文件句柄数为x以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修…

    2022年10月17日
    3
  • Linux基本操作命令 实验

    Linux基本操作命令 实验一、实验目的:1. 熟悉Linux基本命令。2. 熟悉Linux操作系统。二、实验环境:一台装有Linux的机器。三、实验内容:1.文件操作命令的使用。用vi编辑器新建一个testl文件输入thisistestl~!查看文件与目录ls进入Linux系统,输入ls-m按回车键执行。 一、实验目的:1. 熟悉Linux基本命令。2. 熟悉Linux操作系统。 二、实验环境:一台装有Linux的机器…

    2026年4月18日
    6
  • PHP的ini_set函数用法[通俗易懂]

    PHP的ini_set函数用法

    2022年2月9日
    37
  • plsqldev中写json[通俗易懂]

    plsqldev中写json[通俗易懂]1.点击左上角新建,命令窗口2.输入:pljson-master位置+install.sql3.显示如下结果4.安装完成这样就可以在SQL中写json啦

    2022年5月8日
    127
  • java dom4j方式读取xml文件并解析

    java dom4j方式读取xml文件并解析javadom4j 方式读取 xml 文件并解析

    2025年10月7日
    6
  • 一劳永逸解决SolidWorks 2019、2020“无法获得下列许可 SOLIDWORKS Standard”的激活错误

    一劳永逸解决SolidWorks 2019、2020“无法获得下列许可 SOLIDWORKS Standard”的激活错误通常 按照网上教程来安装 SolidWorks20 2020 到最后启动软件有可能会出现这个错误 下面提供本人亲测可用 在用的解决办法供各位参考 1 如果弹出该错误提示时 先检查 SolidWorks Flexnet Server 这个文件夹的所在路径 建议移动到 SolidWorks 的安装根目录下 即 SOLIDWORKSCo 目录下 因自身原因无法移动的 请勿删除该文件夹 否则会激活

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号