2017-12-07 69 views
-2
select "gt.shiftkerja","i.jenis","i.konsinyasi","gp.group" from "tbl_ikhd gt"@PG 
join "tbl_ikdt dt"@PG on "gt.notransaksi"="dt.notransaksi" 
join "tbl_item i"@PG on "dt.kodeitem"="i.kodeitem" 
LEFT JOIN "group_posting gp"@PG on "gp.kode_group"="i.jenis"and "gp.konsinyasi"="i.konsinyasi" 
where to_char("gt.tanggal", 'YYYY-MM-DD')='2017-09-08' group by "gt.shiftkerja","i.jenis","i.konsinyasi","gp.group" order by "gt.shiftkerja","gp.group"; 

この私のエラーステータスをデバッグするにはORA-28500(Oracleでは、 `` `` X``は存在しません)」)?

status: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: relation "group_posting gp" does not exist; No query has been executed with that handle {42P01,NativeErr = 1} ORA-02063: preceding 3 lines from PG

+0

Pro-tip:ここで便利なタイトルを使用してください。 「助けてください」は役に立たず、「間違っている」ということは十分に詳細ではない。 – halfer

答えて

0

あなたのクエリからのすべての引用符を削除する必要があります。これらのうちのいくつかは特に悪いものです。

FROM "tbl_ikhd gt" 

何すなわちしようとしていることは、次のように読むべきであること、(スペースを含む)まさにその名前のテーブルを探している:今、テーブル名がtbl_ikhdとの別名である

FROM tbl_ikhd gt 

そのテーブルはgtです。

だから、すべての引用を除去した後、それは次のようになります。

SELECT 
     gt.shiftkerja 
    , i.jenis 
    , i.konsinyasi 
    , gp.group 
FROM tbl_ikhd gt 
JOIN tbl_ikdt dt ON gt.notransaksi = dt.notransaksi 
JOIN tbl_item i ON dt.kodeitem = i.kodeitem 
LEFT JOIN group_posting gp ON gp.kode_group = i.jenis AND gp.konsinyasi = i.konsinyasi 
WHERE to_char(gt.tanggal, 'YYYY-MM-DD') = '2017-09-08' 
GROUP BY 
     gt.shiftkerja 
    , i.jenis 
    , i.konsinyasi 
    , gp.group 
ORDER BY 
     gt.shiftkerja 
    , gp.group; 

しかしを使用すると、日付のフィルタリング方法を変更してください。現在、関数to_charによってすべてのデータ行を変更しています。これにより、日付列のインデックスへのアクセスが削除されます。より良い方法は、データをフィルタリングする方法を変更して、データが関数の影響を受けないようにすることです。

WHERE gt.tanggal >= to_date('2017-09-08', 'YYYY-MM-DD') 
AND gt.tanggal < to_date('2017-09-09', 'YYYY-MM-DD') 
+0

大丈夫ですが、dblinkがなくなってしまったので、dblink、wkwkwk ,, –

+0

とこのSQLステートメントを書くのは混乱します。申し訳ありませんが、あなたのコメントは分かりません –

関連する問題