我有两张这样的表
FLUX_ISU_EQU
ID NUMBER(38,0)
EQU_CODE VARCHAR2(10 BYTE)
DATE_DERNIERE_MODIF DATE
FLUX_ISU_EQU_AFF_TAB
ID NUMBER(38,0)
EQU_ID NUMBER(38,0)
DATE_DEBUT DATE
DATE_FIN DATE
TYPE_EQU VARCHAR2(10 BYTE)
CODE_REGION VARCHAR2(10 BYTE)
我的表格中有数据如下:
FLUX_ISU_EQU
FLUX_ISU_EQU_AFF_TAB
我有一个这样的程序:
PROCEDURE DONNEES_IS_PRESENT(equ_id IN NUMBER, isCheckDonnees IN OUT BOOLEAN) IS
nbEquipement NUMBER;
BEGIN
nbEquipement := 0;
select count(*) into nbEquipement from flux_isu_equ_aff_tab fieat, flux_isu_equ fie where fieat.EQU_ID = fie.id AND fie.id = equ_id;
IF nbEquipement = 0 THEN
isCheckDonnees := false;
Pk_Compas_Util.LOG_ERROR('Pk_Compas_Flux_Isu.IMPORT_EQUIPEMENT_EAI', 'IMPORT_EQUIPEMENT_EAI', equ_id, NULL, NULL, 'Acune correspondance pour l''id '''||equ_id||''' dans la table FLUX_ISU_EQU_AFF_TAB', NULL);
END IF;
END;
那么,为什么当我执行我的程序时nbEquipement = 3而不是nbEquipement = 1.
为什么..?
PS:当我做的时候
select count(*) from flux_isu_equ_aff_tab fieat, flux_isu_equ fie where fieat.EQU_ID = fie.id AND fie.id = 2;
我有一个结果
THX。
答案 0 :(得分:1)
在以下查询中
select count(*) into nbEquipement from flux_isu_equ_aff_tab fieat, flux_isu_equ fie where fieat.EQU_ID = fie.id AND fie.id = equ_id;
equ_id指的是表格的字段。由于FLUX_ISU_EQU_AFF_TAB具有列equ_id。因此,你有一个看起来像这样的联接。 fieat.EQU_ID = fie.id
你应该做的很简单。只需将变量重命名为IN_EQU_ID或PARAM_EQU_ID orso即可。您的查询应如下所示:
select count(*) into nbEquipement from flux_isu_equ_aff_tab fieat, flux_isu_equ fie where fieat.EQU_ID = fie.id AND fie.id = in_equ_id;
存储过程应如下所示:
create or replace
PROCEDURE DONNEES_IS_PRESENT(in_equ_id IN NUMBER, isCheckDonnees IN OUT BOOLEAN) AS
nbEquipement NUMBER;
BEGIN
nbEquipement := 0;
select count(*) into nbEquipement from flux_isu_equ_aff_tab fieat, flux_isu_equ fie where fieat.EQU_ID = fie.id AND fie.id = in_equ_id;
IF nbEquipement = 0 THEN
isCheckDonnees := false;
--Pk_Compas_Util.LOG_ERROR('Pk_Compas_Flux_Isu.IMPORT_EQUIPEMENT_EAI', 'IMPORT_EQUIPEMENT_EAI', equ_id, NULL, NULL, 'Acune correspondance pour l''id '''||equ_id||''' dans la table FLUX_ISU_EQU_AFF_TAB', NULL);
END IF;
END;
我认为最好是你的所有参数都以IN_为前缀或类似的东西 因此,您的参数名称与字段名称
不同