1. ホーム
  2. sql

[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。

2022-01-31 06:11:39

質問

Oracle 10gでクエリを試しています。それは次のようになります。

SELECT
  *
FROM
  h2h_reg reg,
  h2h_cat_estatus est
WHERE
  reg.FECH_APLICACION = SYSDATE
AND REG.ID_EST        = EST.ID_ESTATUS
AND est.tipo_estatus  = "X";

それで、スムーズに実行されるのですが、試しにgroup byを追加してみると。

SELECT
  reg.id_arch,
  reg.id_prod
FROM
  h2h_reg reg,
  h2h_cat_estatus est
WHERE
  reg.FECH_APLICACION = SYSDATE
AND reg.id_est        = est.id_estatus
AND EST.TIPO_ESTATUS  = "X"
GROUP BY
  reg.id_arch,
  reg.id_prod;

次のメッセージが表示されます。

ora-06553 pls-306 'ogc_x'の呼び出しにおける引数の数またはタイプが間違っている。

私のクエリの何が問題なのか、誰か知っていますか?

どのように解決するのですか?

でダブルクォートを使っている場合 "X" .

これは 'X' .

XオブジェクトはMDSYSスキーマの関数、"ogc_x"であるため、次のように記述すると est.tipo_estatus = "X" ではなく、正しい est.tipo_estatus = 'X' に変換されます(""は識別子なので、"X"は単にXと入力したのと同じです)。 est.tipo_estatus = mdsys.ogc_x で、もちろん失敗します。