I create some function which returns table. I create record, then make record as table.
CREATE OR REPLACE PACKAGE FOR_SELECT AS TYPE NK IS RECORD (
SHT NUMBER,
VVD NUMBER,
NEKOM NUMBER,
N_GOL NUMBER);
TYPE NK_T IS TABLE OF NK; FUNCTION NEK_SLU_PR(W_KOD VARCHAR2)
RETURN NK_T PIPELINED; END FOR_SELECT;
AND MY SIMPLE FUNCTION:
CREATE OR REPLACE PACKAGE BODY FOR_SELECT AS FUNCTION NEK_SLU_PR(W_KOD VARCHAR2)
RETURN NK_T PIPELINED
AS
REC NK_T;
SHT NUMBER;
VVD NUMBER;
NEKOM NUMBER;
N_GOL NUMBER;
BEGIN
SHT := 3;
VVD := 4;
NEKOM := 5;
N_GOL := 6;
SELECT SHT,
VVD,
NEKOM,
N_GOL
INTO REC
FROM DUAL;
PIPE ROW (REC);
RETURN;
END NEK_SLU_PR;END FOR_SELECT;
I have 4 variables and all select in variable which have table type, but ora-000947 - not enough values( what I do wrong?
REC
has the wrong type.
It should be NK
instead of NK_T
, since you deal with a single record.