在Oracle APEX页面中,我在一个区域中有一些文本字段。我输入的文本应保存在表格中。我在页面上有一个选择列表,可以让我确定是否应该使用文本字段A或文本字段B中的值。我的选择列表显示静态值是和否。
如果我的选择列表值为“是”,我取值B(文本字段中的新输入,如果是'否',则值A =值B)。
这是我尝试过的:
declare Value_C varchar2(20) := null;
begin
if :P1_YN = 'No'
then :Value_C := P1_Value_A;
else :Value_C := P1_Value_B
end if;
insert into [table_name]
(ID, PATH, ValueA, ValueB)
values
(:P1_ID, :P1_PATH, :P1_Value_A, :Value_C);
end;
但是,当我运行此代码时,出现错误
Err-1002无法在应用程序中找到项目“Value_C”的项目ID “XXX”。
答案 0 :(得分:0)
如果您的目的是声明局部变量value_c
,则不会在其前面添加冒号。在进行作业时,您可以在P1_Value_A
和P1_Value_B
之前放置一个冒号,假设这些也是您页面上的项目。在else
块中分配后,您的代码也缺少分号。
declare
Value_C varchar2(20) := null;
begin
if :P1_YN = 'No'
then
Value_C := :P1_Value_A;
else
Value_C := :P1_Value_B;
end if;
insert into [table_name]
(ID, PATH, ValueA, ValueB)
values
(:P1_ID, :P1_PATH, :P1_Value_A, Value_C);
end;
假设所有带冒号前缀的标识符都是页面上的项目,在语法上是正确的。