Results 1 to 3 of 3
  1. #1
    Join Date
    Nov 2014
    Posts
    1

    Unanswered: ORA-01795 - Max. 1000 entries

    Hi,

    I get the above error when I run the SQL below:

    SELECT V.VERBLIJFSEENHEIDNUMMER
    ,V.VERBLIJFSEENHEID_ID
    ,V.VERBLIJFSEENHEIDVOLGNUMMER
    ,A.HUISNUMMER
    ,A.HUISLETTER
    ,A.TOEVOEGING
    ,A.AANDUIDING
    ,A.POSTCODE_NUM
    ,A.POSTCODE_ALF
    ,OP.NAAM
    ,W.NAAM AS WOONPLAATS
    ,GB.NAAM AS BUURT
    ,GBD.NAAM AS WIJK
    ,(SELECT VG1.GEBRUIKSDOEL_ID FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG1
    WHERE VG1.GEBRUIKSDOEL_ID = 1 AND
    VG1.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND VG1.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) WOONFUNCTIE,
    (SELECT VG2.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG2
    WHERE VG2.GEBRUIKSDOEL_ID = 2 AND VG2.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG2.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) BIJEENKOMSTFUNCTIE,
    (SELECT VG3.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG3
    WHERE VG3.GEBRUIKSDOEL_ID = 3 AND VG3.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG3.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) CELFUNCTIE,
    (SELECT VG4.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG4
    WHERE VG4.GEBRUIKSDOEL_ID = 4 AND VG4.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG4.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) GEZONDHEIDSZORGFUNCTIE,
    (SELECT VG5.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG5
    WHERE VG5.GEBRUIKSDOEL_ID = 5 AND VG5.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG5.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) INDUSTRIEFUNCTIE,
    (SELECT VG6.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG6
    WHERE VG6.GEBRUIKSDOEL_ID = 6 AND VG6.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG6.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) KANTOORFUNCTIE,
    (SELECT VG7.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG7
    WHERE VG7.GEBRUIKSDOEL_ID = 7 AND VG7.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG7.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) LOGIESFUNCTIE,
    (SELECT VG8.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG8
    WHERE VG8.GEBRUIKSDOEL_ID = 8 AND VG8.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG8.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) ONDERWIJSFUNCTIE,
    (SELECT VG9.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG9
    WHERE VG9.GEBRUIKSDOEL_ID = 9 AND VG9.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG9.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) SPORTFUNCTIE,
    (SELECT VG10.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG10
    WHERE VG10.GEBRUIKSDOEL_ID = 10 AND VG10.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG10.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) WINKELFUNCTIE,
    (SELECT VG11.GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG11
    WHERE VG11.GEBRUIKSDOEL_ID = 11 AND VG11.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VG11.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) OVERIG,
    (SELECT GEBRUIKSDOEL_ID
    FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VGEB
    WHERE VGEB.GEBRUIKSDOEL_ID = (:PAR_GEBR) AND VGEB.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID AND
    VGEB.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) GEBRUIK
    FROM VERBLIJFSEENHEID V, VERBLIJFSEENHEID_ADRES VA, ADRES A, OPENBARERUIMTE OP, WOONPLAATS W, GEBIED GB, GEBIED GBD,
    VERBLIJFSOBJECT_GEBRUIKSDOEL VERGEB
    WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER AND
    VA.ADRES_ID = A.ADRES_ID AND A.OPENBARERUIMTE_ID = OP.OPENBARERUIMTE_ID AND OP.WOONPLAATS_ID = W.WOONPLAATS_ID AND
    A.GEBIED_ID = GB.GEBIED_ID AND GB.PARENT_ID = GBD.GEBIED_ID AND (V.MODIFICATION IS NULL) AND (V.STATUS_ID IN (1, 3, 4, 6)) AND
    (VA.INDHOOFDADRES = 'J') AND (A.MODIFICATION IS NULL) AND (OP.MODIFICATION IS NULL) AND (OP.STATUS_ID = 1) AND (A.STATUSCODE = 1) AND
    (W.STATUS_ID = 1) AND (W.MODIFICATION IS NULL) AND (GB.STATUS_ID = 1) AND (GB.MODIFICATION IS NULL) AND (GBD.STATUS_ID = 1) AND
    (GBD.MODIFICATION IS NULL) AND (VERGEB.VERBLIJFSOBJECT_ID) = (V.VERBLIJFSEENHEID_ID) AND
    (VERGEB.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) AND (VERGEB.GEBRUIKSDOEL_ID IN (:PAR_GEBR)) AND
    (A.POSTCODE_NUM IS NOT NULL) AND (OP.NAAM IN (:PAR_STR))
    ORDER BY OP.NAAM, A.HUISNUMMER, A.HUISLETTER, A.TOEVOEGING, A.AANDUIDING


    :PAR_GEBR

    SELECT GEBRUIKSDOEL_ID, OMSCHRIJVING
    FROM GEBRUIKSDOEL_VBO
    ORDER BY GEBRUIKSDOEL_ID


    :PAR_STR

    SELECT DISTINCT O.NAAM
    FROM VERBLIJFSEENHEID V, VERBLIJFSEENHEID_ADRES VA, ADRES A, OPENBARERUIMTE O
    WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER AND
    VA.ADRES_ID = A.ADRES_ID AND A.OPENBARERUIMTE_ID = O.OPENBARERUIMTE_ID AND (V.MODIFICATION IS NULL) AND (A.MODIFICATION IS NULL) AND
    (VA.INDHOOFDADRES = 'J') AND (O.MODIFICATION IS NULL)
    ORDER BY O.NAAM

    The problem occurs in the last parameter :PAR_STR
    There are more than 1000 entries in that parameter. Clients need to see all entries and need to select one, more or all entries.

    How can I change the SQL above to loose that ORA-01795 error?

    Thanks already!

    Kind regards!
    Marteijn

  2. #2
    Join Date
    Jan 2003
    Location
    Massachusetts
    Posts
    5,800
    Provided Answers: 11
    Can one of the admins move this on over to the Oracle forum? They would probably be better at answering the question there.

    First off, I am going to put the above code in [code] tags, so it is easier for me to read.
    Code:
    SELECT V.VERBLIJFSEENHEIDNUMMER
    	,V.VERBLIJFSEENHEID_ID
    	,V.VERBLIJFSEENHEIDVOLGNUMMER
    	,A.HUISNUMMER
    	,A.HUISLETTER
    	,A.TOEVOEGING
    	,A.AANDUIDING
    	,A.POSTCODE_NUM
    	,A.POSTCODE_ALF
    	,OP.NAAM
    	,W.NAAM AS WOONPLAATS
    	,GB.NAAM AS BUURT
    	,GBD.NAAM AS WIJK
    	,(SELECT VG1.GEBRUIKSDOEL_ID 
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG1
    		WHERE VG1.GEBRUIKSDOEL_ID = 1 
    		  AND VG1.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG1.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) WOONFUNCTIE,
    	(SELECT VG2.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG2
    		WHERE VG2.GEBRUIKSDOEL_ID = 2 
    		  AND VG2.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG2.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) BIJEENKOMSTFUNCTIE,
    	(SELECT VG3.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG3
    		WHERE VG3.GEBRUIKSDOEL_ID = 3 
    		  AND VG3.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG3.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) CELFUNCTIE,
    	(SELECT VG4.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG4
    		WHERE VG4.GEBRUIKSDOEL_ID = 4 
    		  AND VG4.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG4.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) GEZONDHEIDSZORGFUNCTIE,
    	(SELECT VG5.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG5
    		WHERE VG5.GEBRUIKSDOEL_ID = 5 
    		  AND VG5.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG5.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) INDUSTRIEFUNCTIE,
    	(SELECT VG6.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG6
    		WHERE VG6.GEBRUIKSDOEL_ID = 6 
    		  AND VG6.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG6.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) KANTOORFUNCTIE,
    	(SELECT VG7.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG7
    		WHERE VG7.GEBRUIKSDOEL_ID = 7 
    		  AND VG7.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG7.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) LOGIESFUNCTIE,
    	(SELECT VG8.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG8
    		WHERE VG8.GEBRUIKSDOEL_ID = 8 
    		  AND VG8.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG8.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) ONDERWIJSFUNCTIE,
    	(SELECT VG9.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG9
    		WHERE VG9.GEBRUIKSDOEL_ID = 9 
    		  AND VG9.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG9.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) SPORTFUNCTIE,
    	(SELECT VG10.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG10
    		WHERE VG10.GEBRUIKSDOEL_ID = 10 
    		  AND VG10.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG10.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) WINKELFUNCTIE,
    	(SELECT VG11.GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VG11
    		WHERE VG11.GEBRUIKSDOEL_ID = 11 
    		  AND VG11.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VG11.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) OVERIG,
    	(SELECT GEBRUIKSDOEL_ID
    		FROM VERBLIJFSOBJECT_GEBRUIKSDOEL VGEB
    		WHERE VGEB.GEBRUIKSDOEL_ID = (:PAR_GEBR) 
    		  AND VGEB.VERBLIJFSOBJECT_ID = V.VERBLIJFSEENHEID_ID 
    		  AND VGEB.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) GEBRUIK
    FROM VERBLIJFSEENHEID V, 
    	VERBLIJFSEENHEID_ADRES VA, 
    	ADRES A, 
    	OPENBARERUIMTE OP, 
    	WOONPLAATS W, 
    	GEBIED GB, 
    	GEBIED GBD,
    	VERBLIJFSOBJECT_GEBRUIKSDOEL VERGEB
    WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID 
      AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER 
      AND VA.ADRES_ID = A.ADRES_ID 
      AND A.OPENBARERUIMTE_ID = OP.OPENBARERUIMTE_ID 
      AND OP.WOONPLAATS_ID = W.WOONPLAATS_ID 
      AND A.GEBIED_ID = GB.GEBIED_ID 
      AND GB.PARENT_ID = GBD.GEBIED_ID 
      AND (V.MODIFICATION IS NULL) 
      AND (V.STATUS_ID IN (1, 3, 4, 6)) 
      AND (VA.INDHOOFDADRES = 'J') 
      AND (A.MODIFICATION IS NULL) 
      AND (OP.MODIFICATION IS NULL) 
      AND (OP.STATUS_ID = 1) 
      AND (A.STATUSCODE = 1) 
      AND (W.STATUS_ID = 1) 
      AND (W.MODIFICATION IS NULL) 
      AND (GB.STATUS_ID = 1) 
      AND (GB.MODIFICATION IS NULL) 
      AND (GBD.STATUS_ID = 1) 
      AND (GBD.MODIFICATION IS NULL) 
      AND (VERGEB.VERBLIJFSOBJECT_ID) = (V.VERBLIJFSEENHEID_ID) 
      AND (VERGEB.VERBLIJFSOBJECTVOLGNUMMER = V.VERBLIJFSEENHEIDVOLGNUMMER) 
      AND (VERGEB.GEBRUIKSDOEL_ID IN (:PAR_GEBR)) 
      AND (A.POSTCODE_NUM IS NOT NULL) 
      AND (OP.NAAM IN (:PAR_STR))
    ORDER BY OP.NAAM, A.HUISNUMMER, A.HUISLETTER, A.TOEVOEGING, A.AANDUIDING
    
    
    :PAR_GEBR
    
    SELECT GEBRUIKSDOEL_ID, OMSCHRIJVING
    FROM GEBRUIKSDOEL_VBO
    ORDER BY GEBRUIKSDOEL_ID
    
    
    :PAR_STR
    
    SELECT DISTINCT O.NAAM
    FROM VERBLIJFSEENHEID V, 
    	VERBLIJFSEENHEID_ADRES VA, 
    	ADRES A, 
    	OPENBARERUIMTE O
    WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID 
      AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER 
      AND VA.ADRES_ID = A.ADRES_ID 
      AND A.OPENBARERUIMTE_ID = O.OPENBARERUIMTE_ID 
      AND (V.MODIFICATION IS NULL) 
      AND (A.MODIFICATION IS NULL) 
      AND (VA.INDHOOFDADRES = 'J') 
      AND (O.MODIFICATION IS NULL)
    ORDER BY O.NAAM
    A couple things, the order by on the :PAR_STR query is pretty unnecessary, so you may want to remove it. Can the parameter be taken out, and the query put in its place? Something like
    Code:
    AND (OP.NAAM IN (SELECT DISTINCT O.NAAM
        FROM VERBLIJFSEENHEID V, 
    	VERBLIJFSEENHEID_ADRES VA, 
    	ADRES A, 
    	OPENBARERUIMTE O
        WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID 
          AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER 
          AND VA.ADRES_ID = A.ADRES_ID 
          AND A.OPENBARERUIMTE_ID = O.OPENBARERUIMTE_ID 
          AND (V.MODIFICATION IS NULL) 
          AND (A.MODIFICATION IS NULL) 
          AND (VA.INDHOOFDADRES = 'J') 
          AND (O.MODIFICATION IS NULL)))

  3. #3
    Join Date
    Nov 2004
    Posts
    1,427
    Provided Answers: 4
    Whenever the number of values specified in an 'IN' operator in a SELECT statement exceeds 1000, you will get this error.

    Rewrite the IN statements into EXITS statements.

    like
    Code:
    AND (OP.NAAM IN (SELECT DISTINCT O.NAAM
        FROM VERBLIJFSEENHEID V, 
    	VERBLIJFSEENHEID_ADRES VA, 
    	ADRES A, 
    	OPENBARERUIMTE O
        WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID 
          AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER 
          AND VA.ADRES_ID = A.ADRES_ID 
          AND A.OPENBARERUIMTE_ID = O.OPENBARERUIMTE_ID 
          AND (V.MODIFICATION IS NULL) 
          AND (A.MODIFICATION IS NULL) 
          AND (VA.INDHOOFDADRES = 'J') 
          AND (O.MODIFICATION IS NULL)))
    to
    Code:
    AND (EXISTS (SELECT 1 
        FROM VERBLIJFSEENHEID V, 
    	VERBLIJFSEENHEID_ADRES VA, 
    	ADRES A, 
    	OPENBARERUIMTE O
        WHERE V.VERBLIJFSEENHEID_ID = VA.VERBLIJFSEENHEID_ID 
          AND V.VERBLIJFSEENHEIDVOLGNUMMER = VA.VERBLIJFSEENHEIDVOLGNUMMER 
          AND VA.ADRES_ID = A.ADRES_ID 
          AND A.OPENBARERUIMTE_ID = O.OPENBARERUIMTE_ID 
          AND (V.MODIFICATION IS NULL) 
          AND (A.MODIFICATION IS NULL) 
          AND (VA.INDHOOFDADRES = 'J') 
          AND (O.MODIFICATION IS NULL)
          AND OP.NAAM = O.NAAM)
    )
    Last edited by Wim; 11-25-14 at 18:52.
    With kind regards . . . . . SQL Server 2000/2005/2012
    Wim

    Grabel's Law: 2 is not equal to 3 -- not even for very large values of 2.
    Pat Phelan's Law: 2 very definitely CAN equal 3 -- in at least two programming languages

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •