6

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";

したがって、スムーズに実行されますが、次の方法でグループを追加しようとすると:

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'の呼び出しで引数の数またはタイプが間違っています

私のクエリで何が間違っているのか誰かが知っていますか?

4

3 に答える 3

11

で二重引用符を使用しました"X"

これはあるべきです'X'

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

于 2012-12-03T16:50:13.820 に答える
1

で試してくださいDISTINCT

SELECT DISTINCT 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'
于 2012-12-03T16:43:48.633 に答える