2016-07-11 14 views
0

ich zwei Parameter für eine SQL-Abfrage, wie untenPflicht und NON-Pflichtfeld in SQL

gezeigt
Select * from table1 where :B in B and (:C in C or :C is null) 

Voraussetzung:

: B ist ein Pflicht Field.if dieser Wert null keine Datensatz wird angezeigt

aber: C ist nicht obligatorisch Field.wenn dieser Wert null ist, dann werden alle Datensätze, die die Bedingung erfüllen für: B angezeigt.

Hinweis: Multiply Auswahl ist erforderlich für: B und: C

Problem:

wenn: C null ist, dann funktioniert es gut. Wenn die: C nur einen Wert als Eingabe dann auch funktioniert es gut. Aber wenn multiply Wert übergeben wird, funktioniert es nicht wie erwartet.its zeigt 'Fehler beim Laden XMl' Fehler im BI-Publisher

bin diese Abfrage verwenden in BI publisher.i möchte das Problem in SQL-Ebene selbst lösen.

Antwort

0

Ihre SQL-Syntax ist korrekt.

select * from 
(
    select 'A1' A, 'B1' B, 'C1' C from dual 
    union 
    select 'A2' A, 'B2' B, '' C from dual 
    union 
    select 'A3' A, 'B3' B, 'C3' C from dual) 
where B in('B1', 'B2') 
and(C in('C1', 'C2') or C is null) 

Sie müssen sehen, ob BIP falsch das SQL konstruiert. Aktivieren Sie BI-Protokolle und versuchen Sie, das letzte SQL zu extrahieren, das ausgeführt wird.

https://docs.oracle.com/cd/E14004_01/books/Reports/troubleshooting4.html http://bichaos.blogspot.com/2011/02/bi-publisher-11g-log-files-location.html