0

我在 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时,而不是将新客户(记录)插入到客户表中,表格变得不永远回应你能帮我解决插入语句中的问题吗?提前致谢

4

1 回答 1

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;
于 2016-01-05T08:08:01.510 回答