SQL Developer Error: Missing IN or OUT Parameter at Index:: 1

SQL Developer Error: Missing IN or OUT Parameter at Index:: 1

我知道这个问题已经经常被问到,但是 none 的解决方案帮助我解决了我的问题。当 运行 以下代码出现此错误时:

Missing IN or OUT Parameter at Index:: 1

SELECT DISTINCT gpn.GP_ID, gpn.anrede, gpn.titel, gpn.nachname, gpn.vorname, TO_CHAR(gpn.geburtsdatum, 'dd.mm.') AS Geburtsdatum, gp.sapnr, gp.fname, NVL(tfu.bez, fu.bez) AS bez,
   gk.wert as PersonEmail, adr.STRASSE as FirmaStrasse, ort.PLZ as FirmaPLZ, ort.BEZ AS FirmaOrt
FROM S5_PERSONEN gpn
JOIN pf_personfirma pf  ON pf.PERSON_ID = gpn.gp_id
JOIN emf_function emf ON emf.pf_id = pf.pf_id
    AND TRUNC(NVL(emf.valid_to, sysdate)) >= TRUNC(sysdate)
JOIN pnf_fabrikat pnf on pnf.pnf_id = emf.pnf_id
JOIN gp_geschaeftspartner gp     ON gp.gp_id      = pf.firma_id
JOIN gp_geschaeftspartner gp2     ON gp2.gp_id      = pf.person_id
JOIN gk_kontakt gk on gk.gp_id = gp2.gp_id
join adr_adresse adr on adr.adr_id = gp.adr_id
join pa_ort ort on ort.ort_id = adr.ort_id
JOIN fu_funktion fu              ON emf.FU_ID     = fu.FU_ID
LEFT OUTER JOIN TFU_FUNKTION tfu ON tfu.FU_ID     = fu.FU_ID 
    AND tfu.locale_id = ?
WHERE TO_CHAR(gpn.geburtsdatum, 'MM') BETWEEN ? AND ?
AND pnf.PN_ID     = ?
AND kontaktart_id = 3

那些 ? 应该是什么?

看来你想用“参数”。如果是这样,您可以使用

引用它们
  • 一个冒号+参数名,例如where pfn.pn_id = :par_pn_id
  • 一个符号 + 参数名称,例如where pfn.pn_id = &par_pn_id