1

次の形式のクエリを含むビューがあります。これは、任意のスキーマからローカル サーバーでクエリを実行すると完全に機能します。

WITH dates AS (
    SELECT  /*+ materialize */ ...  FROM ( SELECT ... FROM table@link)
    UNION ALL
    SELECT * FROM ( SELECT /*+ materialize */ FROM table@link )
)
SELECT ... FROM (
    SELECT ... FROM (
        SELECT ... FROM (
            SELECT ... FROM (
                SELECT ... FROM 
            )
        ) foo

        LEFT OUTER JOIN (
            SELECT /*+ USE_MERGE(hle dates) */ ... FROM
        )  bar ON conditions
    )
)
UNION  ALL
SELECT ... FROM (
    SELECT ... FROM (
        SELECT ... FROM (
            SELECT ... FROM (
                SELECT ... FROM 
            )
        ) foo

        LEFT OUTER JOIN (
            SELECT /*+ USE_MERGE(hle dates) */ ... FROM
        )  bar ON conditions
    )
)

SELECT * from someschema.my_view@db_linkたとえば、他のサーバー上の任意のリモート db リンクからクエリを実行すると、次のようになります。

ORA-00928: missing SELECT keyword
ORA-02063: preceding line from PLLDB
00928. 00000 -  "missing SELECT keyword"
*Cause:    
*Action:
Error at Line: 2 Column: 9

Oracle は 2 行目が問題であると考えています。最初の 5 行は次のとおりです。

WITH dates AS (
    -- Get days
    SELECT /*+ materialize */
        row_number() OVER (ORDER BY begin_period DESC) rn,
        'D' AS interval_type,

他のすべてのビューは、DB リンクを介して完全に機能します (関連する Oracle バグを回避するために編集すると)。

このビューがローカルでは完全に機能するのに、db リンクでは機能しないのはなぜですか?

4

1 に答える 1