oracle - 变量和proc oracle的问题
问题描述
我是甲骨文的初学者,我需要帮助。我想在我的过程中使用变量,但我不知道该怎么做。我想将一个字符串值影响到一个取决于另一个变量的变量,但是当我吃午饭时,我的 proc 什么都没有发生。代码没有通过 IF 语句,我不知道为什么。
我试图做的:
PROCEDURE contractual_control(p_id_depot IN depot.id_depot%TYPE) IS
-- Code_out proc
v_cod_out varchar(15) := null;
-- List of CODE KO_FCT
ko_fct_01 varchar(15) := 'KO_FCT_01';
ko_fct_02 varchar(15) := 'KO_FCT_02';
ko_fct_03 varchar(15) := 'KO_FCT_03';
ko_fct_04 varchar(15) := 'KO_FCT_04';
-- List of CODE KO_TEC
ko_tec_01 varchar(15) := 'KO_TEC_01';
ko_tec_02 varchar(15) := 'KO_TEC_02';
BEGIN
-----------------------------------------------------------------------------------------------------
-- CC1 - Objets interdits avec Presse Export - JIRA 968
-----------------------------------------------------------------------------------------------------
SELECT ko_fct_04 INTO v_cod_out FROM DEPOT_IMPORT
WHERE DEPOT_IMPORT.ID_ZONE IS NOT NULL
AND DEPOT_IMPORT.TYP_ELEMENT IN ('ENCART','INCARTO','INCPLUS','OPP');
IF v_cod_out is not null THEN
insert into babas_test values ('code retours = ' || v_cod_out);
ELSE
insert into babas_test values ('Pas de code retours');
END IF;
COMMIT;
END contractual_control;
解决方案
你能检查你的选择语句,它可能返回不止一行。
SELECT ko_fct_04 FROM DEPOT_IMPORT
WHERE DEPOT_IMPORT.ID_ZONE IS NOT NULL
AND DEPOT_IMPORT.TYP_ELEMENT IN ('ENCART','INCARTO','INCPLUS','OPP');
您也可以添加exception
到您的程序中以查看错误。
exception when others then
DBMS_OUTPUT.put_line ('ERROR :' || SQLERRM );
推荐阅读
- scope - 如何在 AngularDart 的材料步骤模板中访问表单?
- swift - WKInterfaceTable 未加载值
- r - R-Shiny 使用来自 ui.R 的输入定义函数
- sql - SQL如何显示每个id及其列的前1个值?
- java - 如何设置单元格的背景颜色?
- eclipse - 当编译器没有时 Eclipse 给出错误
- java - 每个有状态的中间 Stream API 操作都保证一个新的源集合吗?
- angular - 角度 6 对象
- vb.net - 如何找到导致事件的原因?VB.Net
- reactjs - /Date(1533668400000)/ 在 React 中以正确的顺序格式化日期