oracle未明确定义列

在查询语句中,经常会出现一个错误: 
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.)

时间: 2024-08-23 20:36:38

oracle未明确定义列的相关文章

Oracle查询提示:未明确定义列

在调试Oracle一个查询语句时出现:未明确定义列 在这种情况下有可能存在的问题不是字段重命名的问题,而是在查询的列中有重复的列.例如: select A.*,rownum mynum from ( select ID,NAME,AGE,SEX,ADDR,TEL,AGE from STUDENT where SEX = '1' -- 语句1 )where rownum <=20 --语句2 在这种情况下单独执行语句1是没有问题的,如果从外面执行语句2就会出现ORA-00918的问题,只要把重复列

oracle 未明确定义错误

select sysuser1.* from (select sysuser2.*, rownum rownum_temp from (select yycgdmx.id yycgdmxid, -- yycgdmx.zbjg, yycgdmx.jyjg, yycgdmx.cgl, yycgdmx.cgje, yycgdmx.cgzt, (select dictinfo.info from dictinfo where dictinfo.typecode = '011' and dictinfo.

ORA-00918: 未明确定义列

ORA-00918: 未明确定义列 出现问题原因及解决办法. --正常写,结果带上表名的字段在处理后表头名称相同,在进行下一次嵌套时就会出现问题 select au.userxm,au01.userxm from app_user au,app_user au01,qt_info qi where qi.user_id=au.user_id and qi.qt_user_id=au01.user_id --出现问题,常常是在处理数据的控件自动加上的 select * from ( select

exception ORA-00918: 未明确定义列

exception ORA-00918: 未明确定义列 CreateTime--2018年5月9日16:08:48 Author:Marydon 1.错误代码展示 SELECT G.* FROM (SELECT F.* FROM (SELECT E.*, ROWNUM ROWNO FROM (SELECT T.ID, T.VIRTUAL_ID, T.INDEX_ID, T.ID_CARD, T.NAME, T.CARDNUM, T.CARDTYPE, T.TELPHONE, T.SEX, TO_

帆软SQL报异常:多表连接的时候出现错误:未明确定义列

我刚开始的代码: 1 select 2 dm_veh_jdcgz_mx.DAY_ID ,--日期 3 dm_veh_jdcgz_mx.GLBM ,--管理部门ID 4 dm_veh_jdcgz_mx.SFZMHM ,--身份证号码 5 dm_veh_jdcgz_mx.DSRXM ,--姓名 6 dm_veh_jdcgz_mx.GZTS,--备注 7 8 dim_bas_gzzl.GZZL_MC ,--管理部门名称 9 10 dim_bas_glbm.GLBMMC ,--管理部门名称 11 dim

MyBaties异常之 ORA-00918: 未明确定义列

原因: 如果a表与b表连接,且a与b中存在两个相同的字段,则必须指明字段是哪个表的 箭头所致位置没有指定ROOM_ID为那个表的,应修改为t1.ROOM_ID

oracle EBS 资产定义

一.资产定义也就是江项目任务上的物料按照一定格式生成资产信息,其中每个独立物料生成一条资产,具体操作步骤如下: 1.省本部库存超级用户系统内生成领料单.审批领料单.最后进行出库处理操作正式将物料进行出库(将物料发送至项目上) 2.省本部项目会计超级用户在系统内提交成本征收管理器请求和事务处理导入请求,这两个请求可以生成任务的支出信息 3.省本部项目经理在转资准备功能中选择需要进行资产定义的任务,然后单击资产定义,次请求运行结束后会将任务上的物料信息按照资产格式生成资产信息并将数据插入至表pa_p

Oracle中“行转列”的实现方式

在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用“行转列”: scott的emp的原始数据为: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 12/17/1980 800.00 20 7499 ALLEN SALESMAN 7698 2/20/1981 1600.00 300.00 30 7521 WARD SALESMAN

msyql定义列属性

定义列属性 (列属性,列约束) 是否为空 not null  默认值    default 0  主键     primary key    (可以唯一识别,某条记录的字段或者是字段的集合,就是主键)  自动增长   auto_increment (可以设置自动增长的初始值) 例: auto_increment 10(这样就会从10开始增长)   注释     comment 'xxx'    (注释:可以让我们清晰看懂这个属性)