2017-03-28 1 views
0

Je ne peux pas utiliser un Direct Database Request (DDR) comme requête de filtre. L'exigence est de filtrer les codes postaux dans ma requête principale basée sur le domaine en utilisant une requête basée sur DDR qui exécute une fonction REGEXP, expliquée ci-dessous.Comment créer ou définir une variable dans une requête de filtre DDR (Direct Database Request)?

Existe-t-il un moyen de définir ou de définir la valeur d'une variable de présentation ou de requête dans ma requête de filtre?

Quelles autres approches pourrais-je essayer? La fonction REGEXP ne peut pas être transférée au RPD via EVALUATE() dans une analyse OBIEE, car elle n'est pas prise en charge dans mon fichier NQSConfig.INI. Et, il s'agit d'une instance Oracle Sales Cloud, donc je n'ai pas accès pour modifier mon fichier NQSConfig.INI.


Ce que j'ai essayé jusqu'à présent:

J'ai créé un DDR en OBIEE utilisant le pool de connexion défini dans mon RPD.

Cette requête récupère tous les codes postaux qui ne sont pas numériques:
SELECT hz_parties.party_id, hz_parties.postal_code FROM HZ_PARTIES where REGEXP_INSTR(Substr(HZ_PARTIES.POSTAL_CODE,0,2), '[0-9]{2}') = 0

Cela fonctionne.

Mais j'ai une analyse basée sur la zone sujet OBIEE qui nécessite un filtre utilisant l'opérateur is based on results of another analysis, en utilisant le DDR et correspond à sa colonne party_id.

Ceci est l'erreur générée et SQL de mon analyse principale OBIEE:

Error Details Error Codes: YQCO4T56:OPR4ONWY:U9IM8TAC:OI2DL65P Location: saw.views.evc.activate, saw.httpserver.processrequest, saw.rpc.server.responder, saw.rpc.server, saw.rpc.server.handleConnection, saw.rpc.server.dispatch, saw.threadpool.socketrpcserver, saw.threads Odbc driver returned an error (SQLExecDirectW). State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 27047] Nonexistent table: "EXECUTE". (HY000) SQL Issued: {call NQSGetLevelDrillability('SELECT "Contact"."Contact Row ID" saw_0 FROM "Sales - CRM Customers and Contacts Real Time" WHERE "Contact"."Contact Row ID" IN (SELECT saw_0 FROM (EXECUTE PHYSICAL CONNECTION POOL "CRM_OLTP"."Connection Pool" SELECT hz_parties.party_id, hz_parties.postal_code FROM HZ_PARTIES where REGEXP_INSTR(Substr(HZ_PARTIES.POSTAL_CODE,0,2), ''[0-9]{2}'') = 0) nqw_1)')}

Répondre

1

Voyant que vous êtes dans un produit de nuage, je dirais que cela sonne comme vous devriez ouvrir un SR :)

+0

Sauf que je suis l'ingénieur de support Oracle :) La question n'est pas pour un problème client; juste une curiosité de voir si quelqu'un a des suggestions. – cdabel

+1

Vous pensez que je ne vous ai pas google? ;-) Ceci n'est pris en charge dans aucune incarnation d'Oracle Analytics. Pas OBIEE, pas OTBI et pas OAC. Pardon. – Chris