我在when-validate-item触发器中有这段代码
declare
x number;
c varchar2(5);
n varchar2(25);
begin
select COUNT(*) into x from CUSTOMERS where CUSTOMERS.cus_name=:output_header.text_item48;
if x > 0
then
NULL;
else
IF SHOW_ALERT('ALERT56')= ALERT_BUTTON1 THEN
select to_char(max(customers.cus_id)+1) into c from customers;
n:=to_char(:output_header.text_item48);
insert into customers(cus_id,cus_name) values(c,n);
end if;
END IF;
end;'
此代码应检查输入的客户名称是否已存在,如果不是我想创建新客户 问题是当我按下警告按钮1,而不是将新客户(记录)插入到客户表中时,表单变得无法响应 你能帮我解决一下插入声明中的问题吗? 提前谢谢
答案 0 :(得分:0)
似乎:output_header.text_item48已经是一个char项,所以不需要使用to_char进行转换,请使用以下代码进行测试:
declare
x number;
c varchar2(5);
n varchar2(25);
begin
select COUNT(*) into x from CUSTOMERS where CUSTOMERS.cus_name=:output_header.text_item48;
if x > 0
then
NULL;
else
IF SHOW_ALERT('ALERT56')= ALERT_BUTTON1 THEN
select to_char(max(customers.cus_id)+1) into c from customers;
n:= :output_header.text_item48;
insert into customers(cus_id,cus_name) values(c,n);
commit;
end if;
END IF;
end;