Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> select on a view -> ORA-12571

select on a view -> ORA-12571

From: Andreas Mosmann <keineemails_at_gmx.de>
Date: Tue, 07 Feb 2006 16:21:40 +0100
Message-ID: <1139325700.06@user.newsoffice.de>


Hi,

there is a view that is compiled fine. It is also possible to select from this view. And it is also possible to use a where- clause. But if I use the field VID_SBA inside the where- clause I get an error ORA-12571 an the connection to DB is closed.
Where do I have to look for the problem? (Text is attached)

Andreas

<WORKING_SELECT>

select distinct VID_STRASZENMEISTEREI
from V_RECHTE_STRASZENMEISTEREIEN
where
  VNAME_NUTZER= 'Andreas Mosmann (Testbetrieb)'
</WORKING_SELECT>

<CRASHING_SELECT>

select distinct VID_STRASZENMEISTEREI
from V_RECHTE_STRASZENMEISTEREIEN
where
  VID_SBA = 1411
</CRASHING_SELECT>

<MYSTERIOUS_VIEW>

CREATE VIEW BAUMD.V_RECHTE_STRASZENMEISTEREIEN AS SELECT

  N.cid VID_NUTZER,
  N.cname VNAME_NUTZER,
  R.cidinstitution VID_RECHTEGEBER,

  IRecht.cname VNAME_RECHTEGEBER,
  ISM.CID VID_STRASZENMEISTEREI,
  ISM.CNAME VNAME_STRASZENMEISTEREI,
  'indirekt' V_HERKUNFTSART,
  R.CRECHTLESEN VRECHT_LESEN,
  R.CRECHTSCHREIBENBAUM VRECHT_SCHREIBENBAUM,
  R.CRECHTSCHREIBENNETZ VRECHT_SCHREIBENNETZ,
  R.CRECHTESS VRECHT_ESS,
  R.CRECHTTTSIB VRECHT_TTSIB,

  ISBA.cid VID_SBA,
  ISBA.cname VNAME_SBA
FROM
  TSNUTZER N
LEFT JOIN
  TSRECHTE R
ON
  R.CIDNUTZER = N.CID
LEFT JOIN
  TSINSTITUTIONEN IRecht
ON
  IRecht.CID=R.CIDINSTITUTION
LEFT JOIN
  TSINSTITUTIONEN ISM
ON
  PACKAGEWERKZEUGE.IstWurzel(IRecht.CID,ISM.CID)='Y' LEFT JOIN
  tsinstitutionen ISBA
ON
  packagewerkzeuge.gibsba(ISM.CID)=ISBA.cid WHERE
  (ISM.CIDART='SM')
UNION
SELECT
  N.cid VID_NUTZER,
  N.cname VNAME_NUTZER,
  R.cidinstitution VID_RECHTEGEBER,
  IRecht.cname VNAME_RECHTEGEBER,

  IRecht.CID VID_STRASZENMEISTEREI,
  IRecht.CNAME VNAME_STRASZENMEISTEREI,
  'direkt' V_HERKUNFTSART,
  R.CRECHTLESEN VRECHT_LESEN,
  R.CRECHTSCHREIBENBAUM VRECHT_SCHREIBENBAUM,
  R.CRECHTSCHREIBENNETZ VRECHT_SCHREIBENNETZ,
  R.CRECHTESS VRECHT_ESS,
  R.CRECHTTTSIB VRECHT_TTSIB,

  ISBA.cid VID_SBA,
  ISBA.cname VNAME_SBA
FROM
  TSNUTZER N
LEFT JOIN
  TSRECHTE R
ON
  R.CIDNUTZER = N.CID
LEFT JOIN
  TSINSTITUTIONEN IRecht
ON
  IRecht.CID=R.CIDINSTITUTION
LEFT JOIN
  tsinstitutionen ISBA
ON
  packagewerkzeuge.gibsba(IRecht.CID)=ISBA.cid WHERE
  IRecht.CIDART='SM'
</MYSTERIOUS_VIEW>

<USED_FUNCTIONS>

</USED_FUNCTIONS>

function GibSBA

         (pcnInstitutionsID   number)
         return number as

lvnParent number;
lvsArt varchar2(3);

begin
  SELECT
    CIDART,
    CIDPARENT
  INTO
    lvsArt,
    lvnParent
  FROM
    TSINSTITUTIONEN
  WHERE
    CID = pcnInstitutionsID;
  if lvsArt = 'SBA' then
    return pcnInstitutionsID;
  else
    if lvnParent = NULL or lvnParent = pcnInstitutionsID then       return NULL;
    else
      return GibSBA(lvnParent);
    end if;
  end if;
end;

function IstWurzel

         (
         pcnInstitutionsIDWurzel   number,
         pcnInstitutionsIDBlatt    number
         )
         return varchar2 as

lvnParent number;
lvsArt varchar2(3);

begin
  SELECT
    CIDART,
    CIDPARENT
  INTO
    lvsArt,
    lvnParent
  FROM
    TSINSTITUTIONEN
  WHERE
    CID = pcnInstitutionsIDBlatt;

  dbms_output.put_line ('Wurzel ' || pcnInstitutionsIDWurzel);   if lvnParent=pcnInstitutionsIDWurzel then     return 'Y';
  else
    if lvnParent = NULL or lvnParent = pcnInstitutionsIDBlatt then       return 'N';
    else
      return IstWurzel(pcnInstitutionsIDWurzel,lvnParent);     end if;
  end if;
end;
</USED_FUNCTIONS>

-- 
wenn email, dann AndreasMosmann <bei> web <punkt> de
Received on Tue Feb 07 2006 - 09:21:40 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US