Я пытаюсь сделать процедуру в oracle с PL / SQL. Этот профессионал c должен вызвать функцию с возвращаемым значением, а затем обновить цвет с этим значением. Мой pro c выполняется нормально, но прошивка pro c не работает. Я немного потерян.
Профи c:
PROCEDURE depot_enrichment(babas number) IS
-- Curseur
CURSOR V_CURS_CDIS_CTC IS SELECT DISTINCT CD_REGATE,
OPT_SITE_DEPOT,
TYP_PARUTION_DECLA,
NUM_PUBLICATION_DECLA,
CD_POSTAL,
ID_LIB_PREP
FROM DEPOT_IMPORT
WHERE OPT_SITE_DEPOT = 81001210 OR OPT_SITE_DEPOT = 81001211;
-- Variables proc
p_opt_site varchar2(40); -- DepotCDIS/DepotCTC
-- Variables parameters function
v_CodeSiteDepot VARCHAR2(40); ----- 531980
v_OptionSiteDepot VARCHAR2(40); ---- 81001210/81001211
v_TypeParution VARCHAR2(40); ---- N1, N2, N3 ..........
v_NoPublication VARCHAR2(40);---- 1222K82523
v_codePostal VARCHAR2(40); ----- 55000
v_NiveauPrepa VARCHAR2(40); ---- 50001,50002,5003
-- Libelle parameters function
v_LibOptionSiteDepot VARCHAR2(40); ---- DepotCDIS/DepotCTC
v_LibTypeParution VARCHAR2(40); ---- NUM , FCS ..........
v_LibNiveauPrepa VARCHAR2(40); ---- ATTF, LATD, LDCP, LDQL ou PEM
BEGIN
-----------------------------------------------------------------------------------------------------
-- SUB-PROC OPT SIT DEPOT ENRICHIMENT - ENR4 :détermination de OptionSiteDepot pour les produits Presse
-- Enrichment of the opt_site_depot - JIRA : 1003
-----------------------------------------------------------------------------------------------------
-- option DepotCDIS / CTC
OPEN V_CURS_CDIS_CTC;
LOOP
fetch V_CURS_CDIS_CTC into v_CodeSiteDepot,v_OptionSiteDepot,v_TypeParution,v_NoPublication,v_codePostal,v_NiveauPrepa;
EXIT WHEN V_CURS_CDIS_CTC%notfound;
Insert into babas values ('Parametres : ' || v_CodeSiteDepot || ' / ' || v_OptionSiteDepot || ' / ' || v_TypeParution || ' / ' || v_NoPublication || ' / ' || v_codePostal || ' / ' || v_NiveauPrepa);
-- GET LIBELLE FROM PARAMETERS VARIABLES
SELECT LIB.LIB_LIBELLE INTO v_LibOptionSiteDepot FROM LIBELLE LIB WHERE typ_libelle = 'OSD' and id_libelle = v_CodeSiteDepot;
SELECT TYP.LIB_PARUTION INTO v_LibTypeParution FROM TYPE_PARUTION TYP WHERE id_type_parution = v_TypeParution;
SELECT LIB.VAL_LIBELLE INTO v_LibNiveauPrepa FROM LIBELLE LIB WHERE typ_libelle = 'PEC' and id_libelle = v_NiveauPrepa;
Insert into babas values ('Parametres libelles: ' || v_CodeSiteDepot || ' / ' || v_LibOptionSiteDepot || ' / ' || v_LibTypeParution || ' / ' || v_NoPublication || ' / ' || v_codePostal || ' / ' || v_LibNiveauPrepa);
-- CALL FUNCTION
p_opt_site := return_option_CDIS_CTC(v_CodeSiteDepot,v_LibOptionSiteDepot,v_LibTypeParution,v_NoPublication,v_codePostal,v_LibNiveauPrepa);
Insert into babas values ('option site dépot : ' || p_opt_site);
-- UPDATE ROWS
UPDATE DEPOT_IMPORT SET OPT_SITE_DEPOT = p_opt_site;
END LOOP;
CLOSE V_CURS_CDIS_CTC;
END depot_enrichment;
Когда я вызываю профи c:
что вставлено в таблицу babas:

У меня сложилось впечатление, что код модификации в libelle (3 select) не работает, я пробую запрос в одиночку, и он возвращает мне правильное значение. Я не понимаю, если у вас есть какие-либо документы или советы, будет действительно круто :)