2009-06-04 6 views
1

Was bedeutet die Warnung?Hinweis von Toad for Oracle Formatter

Warum ist das zweite Beispiel schlimmer als das erste?

SELECT product_id, prod.name name, sample_id 
    FROM lims.sample JOIN lims.product prod USING (product_id) 

gegen

SELECT product_id, prod.name name, sample_id 
    FROM (SELECT sample_id, product_id FROM lims.sample) 
     JOIN lims.product prod 
/* ADVICE: [131] This item has not been declared, or it refers to a label */ 
      USING (product_id) 

/* ADVICE: 
ADVICE SUMMARY 

Count Recommendation 
----- -------------- 
    1 [131] This item has not been declared, or it refers to a label 
        The Oracle equivalent error messages are PLS-00320 and 
        PLS-0321. 
*/ 

FYI: Beide Abfragen gut laufen und die gleichen Ergebnisse zurück.

+0

Alle Vermutungen sind willkommen. – Steven

Antwort

1

Die Tabellenmenge, Indizes und gesammelten Statistiken beiseite legen; im Allgemeinen nicht entfernte Unterabfragen sollte verschachtelte Unterabfragen übertreffen.

0

Meine Vermutung: Es sieht so aus, als würde TOAD die Abfrage nicht auf dieselbe Weise analysieren wie Oracle.

In der ersten Abfrage überprüft TOAD möglicherweise die Tabellendefinitionen für lims.sample und lims.product und findet die Spalte "product_id" in beiden, also ist es in Ordnung.

In der zweiten Abfrage kann TOAD die Tabellendefinition für den ersten Teil des Joins nicht überprüfen, da es sich um eine geschachtelte Abfrage handelt. Vielleicht gibt es auf und gibt Ihnen diesen Rat (weshalb der Ratschlag sagt "... oder es bezieht sich auf ein Etikett", das wahrscheinlich ein Copout ist).

Ich würde den Hinweis in diesem Fall ignorieren, vor allem, wie es gut läuft und die gleichen Ergebnisse zurückgibt.

0

Nur eine Vermutung, aber in der zweiten Abfrage ist Ihre Unterabfrage nicht benannt - versuchen Sie es mit einem Alias; zum Beispiel:

SELECT product_id, prod.name name, sample_id 
    FROM (SELECT sample_id, product_id FROM lims.sample) samp 
     JOIN lims.product prod 
      USING (product_id) 
Verwandte Themen