我正在尝试在 Oracle APEX 应用程序中创建 PDF。为此,我使用 ireport 5.6.0 版本并创建 xml 代码,然后使用我在网上找到的 jrxml2pdf 应用程序在我的 apex 应用程序中将 xml 代码转换为 pdf。很多次我都成功地用这种方法创建了 pdf 并将其显示在我的应用程序中。问题是,当我尝试在 pdf 上放置饼图时,出现错误,提示 ORA-01008 并非所有变量均已绑定。但我的代码在蟾蜍上运行良好,在 ireport 的预览屏幕上也运行良好(我可以看到饼图并且值是正确的)。但是之后我将这个xml代码添加到jrxml2pdf并尝试查看我在ireport中看到的pdf,出现这个错误
这是我的 sql 查询代码。当我输入值而不是参数时,pdf 也可以在 apex 上运行。所以问题出在变量上而不是我使用的应用程序上。什么可能导致此错误?
SELECT 'OK' AS Results, a.OK AS Quantity
FROM (SELECT SUM (DECODE (dt.f_status, 'OK', 1, 0)) AS OK
FROM KT_QMS_HEADERS_V he,
(SELECT dt.f_header_id,
dt.f_model_id,
dt.seq_id,
NVL (dtt.f_status, 'NOK') f_status
FROM KT_QMS_DETAILS_V dt,
(SELECT *
FROM KT_QMS_DETECT_V
WHERE f_hullno = $P{P3_HULLNO}
AND f_order=1
) dtt
WHERE
dt.f_model_id = $P{P3_MODEL}
AND dt.seq_id = dtt.f_detail_id(+)
) dt
WHERE
he.f_model_id = $P{P3_MODEL}
AND dt.f_model_id(+) = he.f_model_id
AND dt.f_header_id(+) = he.seq_id
) a
UNION ALL
SELECT 'NOK' AS Results, b.NOK AS Quantity
FROM (SELECT SUM (DECODE (dt.f_status, 'NOK', 1, 0)) AS NOK
FROM KT_QMS_HEADERS_V he,
(SELECT dt.f_header_id,
dt.f_model_id,
dt.seq_id,
NVL (dtt.f_status, 'NOK') f_status
FROM KT_QMS_DETAILS_V dt,
(SELECT *
FROM KT_QMS_DETECT_V
WHERE f_hullno = $P{P3_HULLNO}
AND f_order=1
) dtt
WHERE
dt.f_model_id = $P{P3_MODEL}
AND dt.seq_id = dtt.f_detail_id(+)
) dt
WHERE
he.f_model_id = $P{P3_MODEL}
AND dt.f_model_id(+) = he.f_model_id
AND dt.f_header_id(+) = he.seq_id
) b
如果一个应用程序使用命名绑定变量,那么您只需提供
$P{P3_MODEL}
和 $P{P3_HULLNO}
两个值,并且将为与这些名称匹配的所有变量提供这些值。
如果另一个应用程序正在使用位置绑定变量,那么您需要为绑定变量的每个实例提供一个值,如果绑定变量重复,那么您需要提供这些值的重复项(按照它们在查询中出现的顺序) .
或者,重写您的查询以使其更简单,以便每个绑定变量仅出现一次。
我认为这与您的查询相同(但您没有提供任何示例数据,因此未经测试):
SELECT SUM(DECODE(COALESCE(dtt.f_status, 'NOK'), 'OK', 1, 0)) AS OK,
SUM(DECODE(COALESCE(dtt.f_status, 'NOK'), 'NOK', 1, 0)) AS NOK
FROM KT_QMS_HEADERS_V he
LEFT OUTER JOIN KT_QMS_DETAILS_V dt
ON (
dt.f_model_id = he.f_model_id
AND dt.f_header_id = he.seq_id
)
LEFT OUTER JOIN JOIN KT_QMS_DETECT_V ddt
ON ( ddt.f_hullno = $P{P3_HULLNO}
AND ddt.f_order = 1
AND dt.seq_id = dtt.f_detail_id
)
WHERE he.f_model_id = $P{P3_MODEL}