Sql 错误的查询嵌套选择错误ORA-00913
它不工作,我只得到错误ORA-00913:“太多的值。” 我认为问题在于嵌套选择。我想使用此选择来查看 此代码显示所有员工的报告。我更改了此帖子的属性名称:Sql 错误的查询嵌套选择错误ORA-00913,sql,oracle,plsql,ora-00913,Sql,Oracle,Plsql,Ora 00913,它不工作,我只得到错误ORA-00913:“太多的值。” 我认为问题在于嵌套选择。我想使用此选择来查看 此代码显示所有员工的报告。我更改了此帖子的属性名称: SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD", sk."EEEE", sk."FFFF", sk."GGGGG", sk."HHHHH", (SELECT f.VALUE FROM fnd_user_pro
SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD",
sk."EEEE", sk."FFFF", sk."GGGGG",
sk."HHHHH",
(SELECT f.VALUE
FROM fnd_user_property_tab f
WHERE f.identity = sk.login
AND NAME = 'IIIII') iii,sk."JJJJ",
(SELECT f.VALUE
FROM fnd_user_property_tab f
WHERE f.identity = sk.login
AND NAME = 'SMTP_MAIL_ADDRESS') mail,
(SELECT f.VALUE
FROM fnd_user_property_tab f
WHERE f.identity = sk.login
AND NAME = 'KKKK') kkkk,
(SELECT fnd.ORACLE_ROLE
FROM fnd_user_role_tab fnd
WHERE fnd.identity = sk.login
AND fnd.ORACLE_ROLE LIKE 'STH-%') profil,
(SELECT dr.ROLE, sox_co_w_roli(dr.role) skład
FROM sys.dba_roles dr
WHERE dr.role = (SELECT fnd.ORACLE_ROLE
FROM fnd_user_role_tab fnd
WHERE fnd.identity = sk.login
AND fnd.ORACLE_ROLE LIKE 'STH-%')
) profile_role
FROM sox_konta sk
WHERE("PROFIL_DB" LIKE '%ppppp%'
OR "PROFIL_DB" = 'oooooooo'
OR "PROFIL_DB" = 'rrrrrrrr'
)
AND "COMPANIES" IN ('ZZ; ', 'YY; ')
尝试用这种方式重写您的选择
SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD",
sk."EEEE", sk."FFFF", sk."GGGGG",
sk."HHHHH",
f_iii.value iii, sk."JJJ",
f_mail.value mail,
f_kkk.value kkk,
fnd.oracle_role profil,
dr.ROLE, sox_co_w_roli(dr.role) skład
FROM sox_konta sk,
fnd_user_property_tab f_iii,
fnd_user_property_tab f_mail,
fnd_user_property_tab f_kkk,
fnd_user_role_tab fnd,
sys.dba_roles dr
WHERE("PROFIL_DB" LIKE '%ppppp%'
OR "PROFIL_DB" = 'oooooooo'
OR "PROFIL_DB" = 'rrrrrrrr'
)
AND "COMPANIES" IN ('ZZ; ', 'YY; ')
AND f_iii.identity = sk.login
AND f_iii.NAME = 'IIIII'
AND f_mail.identity = sk.login
AND f_mail.NAME = 'SMTP_MAIL_ADDRESS'
AND f_kkk.identity = sk.login
AND f_kkk.NAME = 'KKKK'
AND fnd.identity = sk.login
AND fnd.ORACLE_ROLE LIKE 'STH-%'
AND dr.role = fnd.ORACLE_ROLE;
我想这会有帮助。试着用这种方式重写您的选择
SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD",
sk."EEEE", sk."FFFF", sk."GGGGG",
sk."HHHHH",
f_iii.value iii, sk."JJJ",
f_mail.value mail,
f_kkk.value kkk,
fnd.oracle_role profil,
dr.ROLE, sox_co_w_roli(dr.role) skład
FROM sox_konta sk,
fnd_user_property_tab f_iii,
fnd_user_property_tab f_mail,
fnd_user_property_tab f_kkk,
fnd_user_role_tab fnd,
sys.dba_roles dr
WHERE("PROFIL_DB" LIKE '%ppppp%'
OR "PROFIL_DB" = 'oooooooo'
OR "PROFIL_DB" = 'rrrrrrrr'
)
AND "COMPANIES" IN ('ZZ; ', 'YY; ')
AND f_iii.identity = sk.login
AND f_iii.NAME = 'IIIII'
AND f_mail.identity = sk.login
AND f_mail.NAME = 'SMTP_MAIL_ADDRESS'
AND f_kkk.identity = sk.login
AND f_kkk.NAME = 'KKKK'
AND fnd.identity = sk.login
AND fnd.ORACLE_ROLE LIKE 'STH-%'
AND dr.role = fnd.ORACLE_ROLE;
我想这会有帮助。从这件开始。你知道错误了吗?对您需要更改为iii提供值的子查询,以便它只返回一行 如果该段未返回错误,则添加下一段,直到确定错误的原因
SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD",
sk."EEEE", sk."FFFF", sk."GGGGG",
sk."HHHHH",
(SELECT f.VALUE
FROM fnd_user_property_tab f
WHERE f.identity = sk.login
AND NAME = 'IIIII') iii
FROM sox_konta sk
WHERE("PROFIL_DB" LIKE '%ppppp%'
OR "PROFIL_DB" = 'oooooooo'
OR "PROFIL_DB" = 'rrrrrrrr'
)
AND "COMPANIES" IN ('ZZ; ', 'YY; ')
从这件开始。你知道错误了吗?对您需要更改为iii提供值的子查询,以便它只返回一行 如果该段未返回错误,则添加下一段,直到确定错误的原因
SELECT sk."AAAA", sk."BBBB", sk."CCCC", sk."DDD",
sk."EEEE", sk."FFFF", sk."GGGGG",
sk."HHHHH",
(SELECT f.VALUE
FROM fnd_user_property_tab f
WHERE f.identity = sk.login
AND NAME = 'IIIII') iii
FROM sox_konta sk
WHERE("PROFIL_DB" LIKE '%ppppp%'
OR "PROFIL_DB" = 'oooooooo'
OR "PROFIL_DB" = 'rrrrrrrr'
)
AND "COMPANIES" IN ('ZZ; ', 'YY; ')
:请检查过滤条件是否仅返回一行。:请检查过滤条件是否仅返回一行。:请检查过滤条件是否仅返回一行。此代码正常,我得到的结果没有错误。好的,还有什么我必须改变的呢?那么现在添加下一个片段。提供邮件专栏的文章。再次检查,然后添加提供kkk列的部件。继续,直到找到导致错误的部分。此代码正常,我得到的结果没有错误。好的,还有什么我必须改变的呢?那么现在添加下一个片段。提供邮件专栏的文章。再次检查,然后添加提供kkk列的部件。继续,直到找到导致错误的部分。对不起,我错了,我想,子选择是在FROM子句之后。查看我的新编辑。好的,我重写了我的代码,但我总是得到相同的错误ORA-00913:太多的rowsorry,我错了,我想,subselect在FROM子句之后。查看我的新编辑。好的,我重写了我的代码,但我总是遇到相同的错误ORA-00913:行太多