Я имею функции этого типа:Использование функции в вставной Заявление Oracle
FUNCTION mfi_cust_details (vacid VARCHAR2)
RETURN VARCHAR2
IS
vcustdetails VARCHAR2 (300);
BEGIN
BEGIN
SELECT a.cust_title_code
|| ','
|| a.cust_id
|| ','
|| b.address_line1
|| ','
|| b.address_line2
|| ','
|| mfi_citycountry (b.country, b.city)
|| ','
|| b.zip
INTO vcustdetails
FROM tbaadm.cmg a, crmuser.address b
WHERE TRIM (a.cif_id) = TRIM (b.orgkey)
AND UPPER (b.addresscategory) IN ('MAILING', 'REGISTERED')
AND cust_id IN (SELECT cust_id
FROM tbaadm.gam
WHERE acid = vacid);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
vcustdetails :=
NULL
|| ','
|| NULL
|| ','
|| NULL
|| ','
|| NULL
|| ','
|| NULL
|| ','
|| NULL
|| ','
|| NULL;
END;
RETURN vcustdetails;
END mfi_cust_details;
и мне нужно вставить данные из них в таблицу, например:
insert into my_table values(mfi_cust_details(myacid),anotherFunction());
но Моя процедура даже с компиляцией с ошибкой:
not enough values
- все, что я пытаюсь сделать, даже возможно?
EDIT Мои определения таблицы
create table my_table cust_title_code varchar2(10),
cust_id varchar2(10),
address1 varchar2(10),
address_2 varchar2(10),
city_code varchar2(5),
country_code varchar2(5),
zip_code varchar2(10));
Вам необходимо ввести инструкцию INSERT INTO..SELECT'. –
Сколько столбцов есть в MY_TABLE ?, если это не 2 (как определено в инструкции значений), это не сработает – davegreen100
@ davegreen100 Я использую вставку внутри курсора с другими значениями. – ErrorNotFoundException