Creare una vista di unione di due tabelle dalla stessa origine dati che hanno due colonne con il tipo di dati VARCHAR. Tuttavia, la vista join non viene spostata in basso sull'origine dati remota.
Sintomi
Si dispone di due tabelle che hanno due colonne con il tipo di dati VARCHAR sull'origine dati remota. Si esegue una query per creare una vista di unione di queste tabelle. Tuttavia, la vista di unione non viene creata o spostata verso il basso sull'origine dati remota a causa delle due colonne con il tipo di dati VARCHAR.
Risoluzione del problema
- Richiamare
cid
dalla tabelladvsys.rdb_connections
.select cid, url from dvsys.rdb_connections;
- Eseguire il seguente comando per specificare l'opzione VARCHAR2_COMPAT , sostituendo
<cid>
con il valore ottenuto dal passo 1.alter server qplex options(set <cid>@varchar2_compat 'Y')
- Se si riceve unSQL1828Nquando si esegue il passo 1, eseguire il seguente comando, sostituendo
<cid>
con il valore ottenuto dal passo 1.alter server qplex options(add <cid>@varchar2_compat 'Y')
L'opzione VARCHAR2_COMPAT fornisce un modo per impostare l'attributo del server VARCHAR2_COMPAT esternamente, ma non può essere utilizzata per risolvere tutti i problemi di push - down che potrebbero verificarsi quando si tenta di unire le tabelle. L'opzione VARCHAR2_COMPAT potrebbe essere utile solo in alcuni casi.
- Se i predicati di unione utilizzano principalmente confronti di stringhe, è necessario impostare l'opzione VARCHAR2_COMPAT su Y per eseguire il push down delle viste di unione sulle origini dati remote.
- Per confrontare valori NULL e stringhe vuote, è necessario impostare VARCHAR2_COMPAT su N.
- Se l'origine dati remota è Big SQL, Oracle o Db2®, che è impostata sulla modalità ORA, è possibile impostare l'opzione VARCHAR2_COMPAT su Y per gli spazi finali.