Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-01799: a column may not be outer-joined to a subquery

jPcSDec 2 2015 — edited Dec 2 2015

I have the following query is based on the original SQL Server query

This way its work well

but when uncommented send me the following error

ORA-01799: a column may not be outer-joined to a subquery

01799. 00000 -  "a column may not be outer-joined to a subquery"

*Cause:    <expression>(+) <relop> (<subquery>) is not allowed.

*Action:   Either remove the or make a view out of the subquery.

           In V6 and before, the was just ignored in this case.

so I ask for help to guide me in my problem

SELECT CA.CategoryID ,

       C.ParentID ,

       C.CategoryLevel ,

       A.AttributeID ,

       COALESCE(AA.AliasName, A.AttributeName) AttributeName  ,

       A.InputTypeID ,

       A.ValidationTypeID ,

       A.IsUnique ,

       A.IsRequired  ,

       CASE ca.AttributeID

                          WHEN 1 THEN cid.CategoryName

                          WHEN 9 THEN cid.MetaTitle

       ELSE CAVN.AttributeValue

          END NVARCHARValue  ,

       CASE ca.AttributeID

                          WHEN 2 THEN cid.DESCRIPTION

                          WHEN 3 THEN TO_CLOB(cid.ShortDescription)

                          WHEN 10 THEN TO_CLOB(cid.MetaKeyword)

                          WHEN 11 THEN TO_CLOB(cid.MetaDescription)

       ELSE TO_CLOB(CAVT.AttributeValue)

          END TEXTValue  ,

       CASE ca.AttributeID

                          WHEN 16 THEN c.IsshowInMenu

                          WHEN 17 THEN c.IsShowInSearch

                          WHEN 18 THEN c.IsShowInCatalog

                          WHEN 36 THEN c.IsService

       ELSE TO_CHAR(CAVB.AttributeValue)

          END BooleanValue    ,

       CAVI.AttributeValue INTValue  ,

       CASE ca.AttributeID

                          WHEN 19 THEN c.ActiveFrom

                          WHEN 20 THEN c.ActiveTo

       ELSE NVL(TO_DATE(CAVDT.AttributeValue,'DD/MM/YY'), TO_DATE('01-JAN-10','DD/MM/YY'))

          END DATEValue  ,

       CAVD.AttributeValue DECIMALValue  ,

       CASE ca.AttributeID

                          WHEN 12 THEN c.BaseImage

                          WHEN 21 THEN c.SmallImage

                          WHEN 22 THEN c.ThumbnailImage

       ELSE CAVF.AttributeValue

          END FILEValue  ,

       CASE c.IsService

                       WHEN 'true' THEN 10

                       WHEN 'false' THEN 9

       ELSE NULL

          END OPTIONValues 

  FROM Aspx_Category C

         JOIN Aspx_CategoryInformationDetail cid

          ON cid.CategoryID = c.CategoryID

         AND cid.CultureName = CASE 'en-US'

                                          WHEN ( SELECT DISTINCT CultureName

                                                 FROM Aspx_CategoryInformationDetail

                                                   WHERE CultureName = 'en-US'

                                                           AND CategoryID = 32 ) THEN 'en-US'

       ELSE 'en-US'

          END

         JOIN Aspx_CategoryAttributes CA

          ON C.CategoryID = CA.CategoryID

         AND C.CategoryID = 32

         JOIN Aspx_Attributes A

          ON CA.AttributeID = A.AttributeID

         LEFT JOIN Aspx_AttributeAlias AA

          --ON AA.CultureName = CASE 'en-US'

            --                              WHEN ( SELECT DISTINCT CultureName

              --                                   FROM Aspx_AttributeAlias

                --                                   WHERE CultureName = 'en-US'

                  --                                         AND AA.AttributeID = A.AttributeID ) THEN 'en-US'

       -- ELSE 'en-US'

         -- END

         on AA.AttributeID = CA.AttributeID --and

         -------

         -------

         LEFT OUTER JOIN Aspx_CategoryAttributesValue_T CAVT

          ON CA.AttributeID = CAVT.AttributeID

         AND CA.CategoryID = CAVT.CategoryID

         AND ( CAVT.StoreID = 1 )

         AND ( CAVT.PortalID = 1 )

         AND CAVT.IsDeleted = 'false'

         AND CAVT.CategoryID = 32

         --AND CAVT.CultureName = CASE 'en-US' WHEN ( SELECT distinct  CultureName

                --                                   FROM Aspx_CategoryAttributesValue_T

                       --                              WHERE CultureName = 'en-US'

                                           --                 AND CategoryID = 32  ) THEN 'en-US'  ELSE 'en-ES'  END       

         LEFT JOIN Aspx_CategoryAttributesValue_D CAVD

          ON CA.AttributeID = CAVD.AttributeID

         AND CA.CategoryID = CAVD.CategoryID

         AND ( CAVD.StoreID = 1 )

         AND ( CAVD.PortalID = 1 )

         AND CAVD.IsDeleted = 'false'

         AND CAVD.CategoryID = 32

       --  AND CAVD.CultureName = CASE 'en-US'

           --                                 WHEN ( SELECT DISTINCT CultureName

               --                                    FROM Aspx_CategoryAttributesValue_D

                  --                                   WHERE CultureName = 'en-US'

                    --                                         AND CategoryID = 32 ) THEN 'en-US'

       --ELSE 'en-US'

         -- END

         LEFT JOIN Aspx_CategoryAttributesValue_N CAVN

          ON CA.AttributeID = CAVN.AttributeID

         AND CA.CategoryID = CAVN.CategoryID

         AND ( CAVN.StoreID = 1 )

         AND ( CAVN.PortalID = 1 )

         AND CAVN.IsDeleted = 'false'

         AND CAVN.CategoryID = 32

        -- AND CAVN.CultureName = CASE 'en-US'

                --                            WHEN ( SELECT DISTINCT CultureName

                    --                               FROM Aspx_CategoryAttributesValue_N

                        --                             WHERE CultureName = 'en-US'

                           --                                  AND CategoryID = 32 ) THEN 'en-US'

       --ELSE 'en-US'

          ---END

         

         

         

         LEFT JOIN Aspx_CategoryAttributesValue_I CAVI

          ON CA.AttributeID = CAVI.AttributeID

         AND CA.CategoryID = CAVI.CategoryID

         AND ( CAVI.StoreID = 1 )

         AND ( CAVI.PortalID = 1 )

         AND CAVI.IsDeleted = 'false'

         AND CAVI.CategoryID = 32

        -- AND CAVI.CultureName = CASE 'en-US'

                          --                  WHEN ( SELECT DISTINCT CultureName

                            --                       FROM Aspx_CategoryAttributesValue_I

                                 --                    WHERE CultureName = 'en-US'

                                     --                        AND CategoryID = 32 ) THEN 'en-US'

     --  ELSE 'en-US'

        --  END

         LEFT JOIN Aspx_CategoryAttributesValue_F CAVF

          ON CA.AttributeID = CAVF.AttributeID

         AND CA.CategoryID = CAVF.CategoryID

         AND ( CAVF.StoreID = 1 )

         AND ( CAVF.PortalID = 1 )

         AND CAVF.IsDeleted = 'false'

         AND CAVF.CategoryID = 32

      --   AND CAVF.CultureName = CASE 'en-US'

               --                             WHEN ( SELECT DISTINCT CultureName

                     --                              FROM Aspx_CategoryAttributesValue_F

                        --                             WHERE CultureName = 'en-US'

                              --                               AND CategoryID = 32 ) THEN 'en-US'

      -- ELSE 'en-US'

        --  END

         LEFT JOIN Aspx_CategoryAttributesValue_D CAVDT

          ON CA.AttributeID = CAVDT.AttributeID

         AND CA.CategoryID = CAVDT.CategoryID

         AND ( CAVDT.StoreID = 1 )

         AND ( CAVDT.PortalID = 1 )

         AND CAVDT.IsDeleted = 'false'

         AND CAVDT.CategoryID = 32

         --AND CAVDT.CultureName = CASE 'en-US'

                --                             WHEN ( SELECT DISTINCT CultureName

                      --                              FROM Aspx_CategoryAttributesValue_D

                            --                          WHERE CultureName = 'en-US'

                                 --                             AND CategoryID = 32 ) THEN 'en-US'

       --ELSE 'en-US'

          --END

         LEFT JOIN Aspx_CategoryAttributesValue_B CAVB

          ON CA.AttributeID = CAVB.AttributeID

         AND CA.CategoryID = CAVB.CategoryID

         AND ( CAVB.StoreID = 1 )

         AND ( CAVB.PortalID = 1 )

         AND CAVB.IsDeleted = 'false'

         AND CAVB.CategoryID = 32

        

        

         --AND CAVB.CultureName = CASE 'en-US'

                    --                        WHEN ( SELECT DISTINCT CultureName

                             --                      FROM Aspx_CategoryAttributesValue_B

                                   --                  WHERE CultureName = 'en-US'

                                        --                     AND CategoryID = 32 ) THEN 'en-US'

      -- ELSE 'en-US'

         -- END

         LEFT JOIN Aspx_CategoryAttributesValue_O CAVO

          ON CA.AttributeID = CAVO.AttributeID

         AND CA.CategoryID = CAVO.CategoryID

         AND ( CAVO.StoreID = 1 )

         AND ( CAVO.PortalID = 1 )

         AND CAVO.IsDeleted = 'false'

         AND CAVO.CategoryID = 32

         --AND CAVO.CultureName = CASE 'en-US'

                           --                 WHEN ( SELECT DISTINCT CultureName

                                 --                  FROM Aspx_CategoryAttributesValue_O

                                     --                WHERE CultureName = 'en-US'

                                       --                      AND CategoryID = 32 ) THEN 'en-US'

      -- ELSE 'en-US'

        --  END

  WHERE ( CA.CategoryID = 32 )

          AND C.PortalID = 1

          AND C.StoreID = 1

          AND C.IsDeleted = 'false';

this is the result

323111Name18falsetrueGames01-JAN-109
323112Description28falsetrueGames01-JAN-109
323113Short Description28falsetrueGames01-JAN-109
323119Meta Title18falsefalse01-JAN-109
3231110Meta Keywords28falsefalse01-JAN-109
3231111Meta Description28falsefalse01-JAN-109
3231112Base Image88falsefalse01-JAN-109
3231116Include in Navigation Menu48falsefalsetrue01-JAN-109
3231117Is Shown in Search48falsefalsetrue01-JAN-109
3231118Is Shown in Catalog48falsefalsetrue01-JAN-109
3231119Active From38falsetrue14-JUL-159
3231120Active To38falsetrue14-JUL-209
3231121Small Image88falsefalse01-JAN-109
3231122Thumbnail Image88falsefalse01-JAN-109
3231136Is Service68falsefalsefalse01-JAN-109
323111¿¿18falsetrueGames01-JAN-109
323112¿¿¿¿28falsetrueGames01-JAN-109
323113¿¿¿28falsetrueGames01-JAN-109
323119META¿¿18falsefalse01-JAN-109
3231110Meta¿¿¿28falsefalse01-JAN-109
3231111META¿¿28falsefalse01-JAN-109
3231112¿¿¿¿88falsefalse01-JAN-109
3231116¿¿¿¿¿¿¿48falsefalsetrue01-JAN-109
3231117¿¿¿¿¿¿48falsefalsetrue01-JAN-109
3231118¿¿¿¿¿48falsefalsetrue01-JAN-109
3231119¿¿¿38falsetrue14-JUL-159
3231120¿¿¿¿38falsetrue14-JUL-209
3231121¿¿¿88falsefalse01-JAN-109
3231122¿¿88falsefalse01-JAN-109
3231136¿¿¿¿68falsefalsefalse01-JAN-109

and this is the sql server  query

SELECT CA.CategoryID

  ,C.ParentID

  ,C.CategoryLevel

  ,A.AttributeID

  ,coalesce(AA.AliasName, A.AttributeName) AS AttributeName

  ,A.InputTypeID

  ,A.ValidationTypeID

  ,A.IsUnique

  ,A.IsRequired

  ,CASE ca.AttributeID

  WHEN 1

  THEN cid.CategoryName

  WHEN 9

  THEN cid.MetaTitle

  ELSE CAVN.AttributeValue

  END AS NVARCHARValue

  ,CASE ca.AttributeID

  WHEN 2

  THEN cid.[Description]

  WHEN 3

  THEN cid.ShortDescription

  WHEN 10

  THEN cid.MetaKeyword

  WHEN 11

  THEN cid.MetaDescription

  ELSE CAVT.AttributeValue

  END AS TEXTValue

  ,CASE ca.AttributeID

  WHEN 16

  THEN c.IsshowInMenu

  WHEN 17

  THEN c.IsShowInSearch

  WHEN 18

  THEN c.IsShowInCatalog

  WHEN 36

  THEN c.IsService

  ELSE CAVB.AttributeValue

  END AS BooleanValue

  ,CAVI.AttributeValue AS INTValue

  ,CASE ca.AttributeID

  WHEN 19

  THEN c.ActiveFrom

  WHEN 20

  THEN c.ActiveTo

  ELSE ISNULL(CAVDT.AttributeValue, Convert(DATETIME, '1970-01-01'))

  END AS DATEValue

  ,CAVD.AttributeValue AS DECIMALValue

  ,CASE ca.AttributeID

  WHEN 12

  THEN c.BaseImage

  WHEN 21

  THEN c.SmallImage

  WHEN 22

  THEN c.ThumbnailImage

  ELSE CAVF.AttributeValue

  END AS FILEValue

  ,CASE c.IsService

  WHEN 1

  THEN 10

  WHEN 0

  THEN 9

  ELSE NULL

  END AS OPTIONValues

  FROM dbo.Aspx_Category AS C

  INNER JOIN dbo.Aspx_CategoryInformationDetails cid ON cid.CategoryID = c.CategoryID

  AND cid.CultureName = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryInformationDetails

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  INNER JOIN dbo.Aspx_CategoryAttributes AS CA ON C.CategoryID = CA.CategoryID

  AND C.CategoryID = 32

  INNER JOIN dbo.Aspx_Attributes AS A ON CA.AttributeID = A.AttributeID

  LEFT JOIN dbo.Aspx_AttributeAlias AA ON AA.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_AttributeAlias

  WHERE CultureName = 'en-US'

  AND AA.AttributeID = A.AttributeID

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  AND AA.AttributeID = CA.AttributeID

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Text AS CAVT ON CA.AttributeID = CAVT.AttributeID

  AND CA.CategoryID = CAVT.CategoryID

  AND (CAVT.StoreID = 1)

  AND (CAVT.PortalID = 1)

  AND CAVT.IsDeleted = 0

  AND CAVT.CategoryID = 32

  AND CAVT.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Text

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Decimal AS CAVD ON CA.AttributeID = CAVD.AttributeID

  AND CA.CategoryID = CAVD.CategoryID

  AND (CAVD.StoreID = 1)

  AND (CAVD.PortalID = 1)

  AND CAVD.IsDeleted = 0

  AND CAVD.CategoryID = 32

  AND CAVD.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Decimal

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Nvarchar AS CAVN ON CA.AttributeID = CAVN.AttributeID

  AND CA.CategoryID = CAVN.CategoryID

  AND (CAVN.StoreID = 1)

  AND (CAVN.PortalID = 1)

  AND CAVN.IsDeleted = 0

  AND CAVN.CategoryID = 32

  AND CAVN.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Nvarchar

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Int AS CAVI ON CA.AttributeID = CAVI.AttributeID

  AND CA.CategoryID = CAVI.CategoryID

  AND (CAVI.StoreID = 1)

  AND (CAVI.PortalID = 1)

  AND CAVI.IsDeleted = 0

  AND CAVI.CategoryID = 32

  AND CAVI.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Int

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_File AS CAVF ON CA.AttributeID = CAVF.AttributeID

  AND CA.CategoryID = CAVF.CategoryID

  AND (CAVF.StoreID = 1)

  AND (CAVF.PortalID = 1)

  AND CAVF.IsDeleted = 0

  AND CAVF.CategoryID = 32

  AND CAVF.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_File

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Date AS CAVDT ON CA.AttributeID = CAVDT.AttributeID

  AND CA.CategoryID = CAVDT.CategoryID

  AND (CAVDT.StoreID = 1)

  AND (CAVDT.PortalID = 1)

  AND CAVDT.IsDeleted = 0

  AND CAVDT.CategoryID = 32

  AND CAVDT.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Date

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Boolean AS CAVB ON CA.AttributeID = CAVB.AttributeID

  AND CA.CategoryID = CAVB.CategoryID

  AND (CAVB.StoreID = 1)

  AND (CAVB.PortalID = 1)

  AND CAVB.IsDeleted = 0

  AND CAVB.CategoryID = 32

  AND CAVB.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Boolean

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  LEFT JOIN dbo.Aspx_CategoryAttributesValue_Options AS CAVO ON CA.AttributeID = CAVO.AttributeID

  AND CA.CategoryID = CAVO.CategoryID

  AND (CAVO.StoreID = 1)

  AND (CAVO.PortalID = 1)

  AND CAVO.IsDeleted = 0

  AND CAVO.CategoryID = 32

  AND CAVO.[CultureName] = CASE 'en-US'

  WHEN (

  SELECT DISTINCT CultureName

  FROM Aspx_CategoryAttributesValue_Options

  WHERE CultureName = 'en-US'

  AND CategoryID = 32

  )

  THEN 'en-US'

  ELSE 'en-US'

  END

  WHERE (CA.CategoryID = 32)

  AND C.PortalID = 1

  AND C.StoreID = 1

  AND C.IsDeleted = 0

  select Convert(DATETIME, '1970-01-01')

  SELECT * FROM Aspx_Category;

  SELECT * FROM Aspx_CategoryAttributes WHERE CategoryID = 32;

  SELECT * FROM Aspx_Attributes;

and this is the result

323111Name1801GamesNULLNULLNULL1970-01-01 00:00:00.000NULLNULL9
323112Description2801NULLGamesNULLNULL1970-01-01 00:00:00.000NULLNULL9
323113Short Description2801NULLGamesNULLNULL1970-01-01 00:00:00.000NULLNULL9
323119Meta Title1800NULLNULLNULL1970-01-01 00:00:00.000NULLNULL9
3231110Meta Keywords2800NULLNULLNULL1970-01-01 00:00:00.000NULLNULL9
3231111Meta Description2800NULLNULLNULL1970-01-01 00:00:00.000NULLNULL9
3231112Base Image8800NULLNULLNULLNULL1970-01-01 00:00:00.000NULL9
3231116Include in Navigation Menu4800NULLNULL1NULL1970-01-01 00:00:00.000NULLNULL9
3231117Is Shown in Search4800NULLNULL1NULL1970-01-01 00:00:00.000NULLNULL9
3231118Is Shown in Catalog4800NULLNULL1NULL1970-01-01 00:00:00.000NULLNULL9
3231119Active From3801NULLNULLNULLNULL2014-09-18 00:00:00.000NULLNULL9
3231120Active To3801NULLNULLNULLNULL2020-09-18 00:00:00.000NULLNULL9
3231121Small Image8800NULLNULLNULLNULL1970-01-01 00:00:00.000NULL9
3231122Thumbnail Image8800NULLNULLNULLNULL1970-01-01 00:00:00.000NULL9
3231136Is Service6800NULLNULL0NULL1970-01-01 00:00:00.000NULLNULL9
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 30 2015
Added on Dec 2 2015
3 comments
4,495 views