1行の結果が返された次の選択があります。
SELECT *
FROM (SELECT (SELECT dokdatum
FROM dokumente
WHERE dokid = '00100002LNWCAJ') AS tckdatum,
aktzeitdatum aktdatum,
(SELECT tckdokzeit
FROM tickets
WHERE tckid = '00100000000ICQ') tckzeit,
(hh * 60 + mm) * 60 AS aktzeit, firmaid
FROM (SELECT TO_DATE (aktdatumuhrzeitunitup,
'DD.MM.YYYY'
) aktzeitdatum,
a.firmaid,
TO_NUMBER (TO_CHAR (aktdatumuhrzeitunitup, 'HH24')
) hh,
TO_NUMBER (TO_CHAR (aktdatumuhrzeitunitup, 'MI')) mm
FROM aktivitaeten a, aktivitaetenarten aa
WHERE a.aktartid = aa.aktartid(+)
/* downtime terminated */
AND aktunitup = 1
AND tckid = '00100000000ICQ'
AND (aktartstatistik IS NULL OR aktartstatistik = 1)
AND a.aktdatumuhrzeitunitup IS NOT NULL)
ORDER BY ((aktdatum - tckdatum) * 24 * 60 * 60 + (aktzeit - tckzeit)
) DESC)
WHERE ROWNUM < 2;
結果は次のとおりです。
11.03.2016 || 11.03.2016 || 41334 || 41940 || 001
このステートメントはエラーなしで実行できます。しかし、パッケージ関数で使用しようとすると
FUNCTION xy ...
IS
CURSOR c_cdt_aktdatumuhrzeitunitup
IS
--the above select
r_cdt_aktdatumuhrzeitunitup c_cdt_aktdatumuhrzeitunitup%ROWTYPE;
BEGIN
OPEN c_cdt_aktdatumuhrzeitunitup;
--Exception is thrown with this statement
FETCH c_cdt_aktdatumuhrzeitunitup
INTO r_cdt_aktdatumuhrzeitunitup;
次に、回線でORA-01861: literal does not match format string
エラーを受け取りますFETCH...INTO
誰かが理由を知っていますか?