2011-07-14 10 views
5

Mam następujące zapytanie:iReport - sparametryzować nazwę schematu?

SELECT 
    blah 
FROM 
    "PUBLIC"."MYACTIVITY" MYACTIVITY 

Problem polega na tym, nazwa schematu jest różna dla różnych środowisk. Próbowałem dokonywania "PUBLIC" parametrem tak:

SELECT 
    blah 
FROM 
    "$P{schemaName}"."MYACTIVITY" MYACTIVITY 

podczas ustawiania schemeName przed skompilować raportu w params, ale bez względu na to, co robię, albo jaka jest wartość domyślna jest ustawiona, pojawia się następujący błąd:

Error:SQL problems:invalid schema name: ? in statement [SELECT blah FROM "?"."MYACTIVITY" MYACTIVITY

Jak prawidłowo parametryzacji nazwę schematu dla tego raportu?

Odpowiedz

3

Spróbuj użyć $P!{schemaName}. Zwróć uwagę na wykrzyknik. Użyj cudzysłowów w wartości:

SELECT 
    blah 
FROM 
    $P!{schemaName}."MYACTIVITY" MYACTIVITY 

oraz:

Niech schemaName = "PUBLIC" (m.in. cytaty).

Podstawienie $P{} zapewnia interpretowaną wartość, natomiast $P!{} używa wartości literalnej. Możesz użyć $P!{}, aby zmienić samą kwerendę.

+0

Rzeczywiście znalazłem to w iReporcie wkrótce po opublikowaniu tego, ale sformułowanie nie miało sensu i nie mogłem znaleźć żadnej dokumentacji, kiedy szukałem terminologii używanej przez iReport. Czuję, że to wymaga więcej dokumentacji lub widoczności lub czegoś takiego: P. –

+0

Tak. '$ X {}' i '$ P! {}' Potrzebują więcej światła na nich. Szukanie w sieci znaków niealfanumerycznych jest problematyczne. –

+0

Czekaj, co to jest X {}? : P –