Oracle PL/SQLの関数を操作する際に問題が発生しています。END LOOP間違った式PL/SQL
create or replace FUNCTION FX_A (IVI NUMBER)
RETURN ListadoStrings
AS
datos ListadoStrings;
dato VARCHAR2(4000);
idx NUMBER;
BEGIN
datos := ListadoStrings();
BEGIN
FOR prog IN (
SELECT TCPR.DES
FROM TIVI TVIS
JOIN TICPR TCPR ON (TCPR.PRO = TVIS.PRO AND TCPR.CAT = TVIS.CAT AND TCPR.TIP = TVIS.TIP)
WHERE TVIS.IVI = IVI
) LOOP
datos.extend;
datos(datos.count) := prog;
END LOOP;
END;
BEGIN
FOR tarea IN (
SELECT TTAR.DES
FROM TIVI TVIS
JOIN TITAR TBTAR ON TBTAR.IVI = TVIS.IVI
JOIN TMTAR TTAR ON TTAR.ITAR = TBTAR.ITAR
WHERE TVIS.IVI = IVI
) LOOP
datos.extend;
datos(datos.count) := tarea;
END LOOP;
END;
return datos;
END FX_A;
私はこのスクリプトを実行すると、私は応答を取得:コンパイラのログを確認
:エラーをコンパイル
機能FX_DATOSVISITAここ
コードです
そしてコンパイラのログで私は参照してください:
エラー(17,13):PL/SQL:ステートメント
を無視エラー(17,37):PLS-00382:式が
エラー(30、間違ったタイプのものであり13):PL/SQL:無視ステートメント
エラー(30,37):PLS-00382:式が間違っているタイプのものであり
影響を受ける行は両方とも "END LOOP;"です。ライン。
私を助けることができますか? ありがとうございました!
EDIT 1:
[OK]を、今私はすべてのエラーを持っていないが、関数が何も返さない:
create or replace FUNCTION FX_A (IVI NUMBER)
RETURN ListadoStrings
AS
datos ListadoStrings;
dato VARCHAR2(4000);
idx NUMBER;
BEGIN
datos := ListadoStrings();
BEGIN
FOR prog IN (
SELECT TCPR.DES as des
FROM TIVI TVIS
JOIN TICPR TCPR ON (TCPR.PRO = TVIS.PRO AND TCPR.CAT = TVIS.CAT AND TCPR.TIP = TVIS.TIP)
WHERE TVIS.IVI = IVI
) LOOP
DBMS_OUTPUT.PUT_LINE(prog.des);
datos.extend;
datos(datos.count) := prog.des;
END LOOP;
END;
BEGIN
FOR tarea IN (
SELECT TTAR.DES as des
FROM TIVI TVIS
JOIN TITAR TBTAR ON TBTAR.IVI = TVIS.IVI
JOIN TMTAR TTAR ON TTAR.ITAR = TBTAR.ITAR
WHERE TVIS.IVI = IVI
) LOOP
DBMS_OUTPUT.PUT_LINE(tarea.des);
datos.extend;
datos(datos.count) := tarea.des;
END LOOP;
END;
return datos;
END FX_A;
私はDBMS_OUTPUT.PUT_LINEの結果(tarea.des)を見ることができます; FTWコンソールではなく、関数の戻りは唯一の「ART_MOVIL.VISITA_DATOS(」
あなたは?
変数を 'datos(datos.count):= prog.des 'と' datos(datos.count):= tarea.des'に変更してみてください。行のタイプ。 –
@HepCあなたは編集をチェックすることができますか? –
投稿した出力、 '' ART_MOVIL.VISITA_DATOS( "'、意味がありません。更新された関数がデータを集めて返さなければならないというデータがある。それがない場合は、ここに投稿していないことをしていることがあります。したがって、私たちがあなたを助けるためにできることは何もありません。 TYPEとTABLEの定義とサンプルデータを使って再現可能なテストケースを投稿すると、さらに役立つかもしれません。 – APC