2017-07-27 4 views
0

Es gibt zwei db's, Tabelle test_table auf db1 mit Kontextindex nach Feld a. Abfrage:Oracle-Kontextindex: funktioniert nicht über dblink

select * 
    from test_table t 
where contains(t.a, 'str') > 0 

Es funktioniert gut auf db1. Aber wenn ich gleiche Abfrage über dblink aus anderer Datenbank versuchen ausführen:

select * 
    from [email protected] t 
where contains(t.a, 'str') > 0 

ich diesen Fehler:

ora-20000: Oracle Text Fehler: DRG-10599: Spalte ist nicht indiziert

+0

Haben Sie darüber nachgedacht einen Blick auf Ihre Abfrage (mit dem Prädikat) in DB1 erstellen und dann die Ansicht, die Datenbank abfragen Link in db2 verwenden? –

Antwort

0

Sie müssen dblink zur Funktion hinzufügen. https://docs.oracle.com/cd/E11882_01/text.112/e24436/csql.htm#CCREF0104

The CONTAINS operator also supports database links. You can identify a remote table or materialized view by appending @dblink to the end of its name. The dblink must be a complete or partial name for a database link to the database containing the remote table or materialized view. (Querying of remote views is not supported.)

select * 
    from [email protected] t 
where contains(t.a, 'str')@db1 > 0. 
+0

Danke, es funktioniert, die einzige Klarstellung - die korrekte Version sieht so aus: wählen * von test_table @ db1 t wo enthält @ db1 (t.a, 'str')> 0. –

Verwandte Themen