oracle形成10g运行时超时

时间:2015-12-18 21:30:26

标签: oracle-sqldeveloper oracleforms ora-00001

我在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,而不是将新客户(记录)插入到客户表中时,表单变得无法响应 你能帮我解决一下插入声明中的问题吗? 提前谢谢

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;