0

それは機能せず、エラー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_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; ')
4

2 に答える 2

2

この方法で選択を書き直してみてください

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;

これが役立つと思います。

于 2012-11-16T08:18:17.523 に答える
1

この作品から始めましょう。エラーが発生していますか?はい?iiiの値を提供するサブクエリを変更して、1行のみを返すようにする必要があります。

このセグメントがエラーを返さない場合は、エラーの原因を特定するまで次のピースを追加します。

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; ')
于 2012-11-16T10:22:35.027 に答える