sql >> Database >  >> RDS >> Oracle

Is dit een mogelijke bug van Oracle of mis ik iets?

Geen grote fan van AND/WHERE column = (SELECT column....) , holistisch gezien is het beter om AND/WHERE column IN (SELECT column...) . Maar in jouw geval lijkt het er niet op dat er meerdere rijen of kolommen in de subquery kunnen voorkomen. Wat dacht je van-

var comment_id number
exec :comment_id := 3052753
select e.label as doc_name,
          e.url,
           i.item_id,
           'multi' as form_type
    from cr_items i, cr_extlinks e
    where i.parent_id = :comment_id
    and e.extlink_id = i.item_id
   UNION
    select null as doc_name,
           utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(r.content, 2000, 1))  as url,
           r.item_id,
           'single' as form_type
    from cr_revisions r
    where r.revision_id IN ( select content_item.get_latest_revision(:comment_id) 
                          from dual);

/

OF

var comment_id number
exec :comment_id := 3052753
select e.label as doc_name,
          e.url,
           i.item_id,
           'multi' as form_type
    from cr_items i, cr_extlinks e
    where i.parent_id = :comment_id
    and e.extlink_id = i.item_id
   UNION
    select null as doc_name,
           utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(r.content, 2000, 1))  as url,
           r.item_id,
           'single' as form_type
    from cr_revisions r
    where EXISTS (select 'x'
                   from dual
                    where content_item.get_latest_revision(:comment_id) =r.revision_id);


/


  1. XML opslaan in een database voor flexibele inhoud

  2. Oracle hoe een afbeelding in een blob-kolom te laden met sqlldr

  3. Waarom kan ik geen alias gebruiken in een DELETE-instructie?

  4. GET DIAGNOSTICS met COPY-instructie in Pl/pgsql-functie