update lsh set lsh =outlsh where tablename = as_table_name;应为: update ys_lsh set lsh =outlsh where tablename = as_table_name;你的表名错了
to guostong(笨驴):多谢了 啊,我...怎么这么不细心 还是不行。报同样的错
Create Or Replace procedure up_ys_lsh ( as_table_name varchar2, outlsh out varchar2 ) As ui_count integer; /*是否存在记录*/ Begin select count(*) Into ui_count from ys_lsh where tablename = as_table_name; If ui_count <> 1 Then raise_application_error(-20000,'该字段不能自动派生值。'); return; Else select lsh into outlsh from ys_lsh where tablename = as_table_name; If outlsh is null Then outlsh:= '1'; Else outlsh:= to_char(to_number(outlsh) + 1); End if; update ys_lsh set lsh =outlsh where tablename = as_table_name; End If; return; End;没有任何问题呀?
outlsh out varchar2
1.应该为@as_table_name varchar2,注意"@"号。
2.@outlsh 和 out之间的空格好象不和法。
3.ui_count 没定义吧。
我的是ORACLE数据库
update ys_lsh set lsh =outlsh where tablename = as_table_name;你的表名错了
啊,我...怎么这么不细心
还是不行。报同样的错
(
as_table_name varchar2,
outlsh out varchar2
)
As
ui_count integer; /*是否存在记录*/
Begin
select count(*) Into ui_count from ys_lsh where tablename = as_table_name;
If ui_count <> 1 Then
raise_application_error(-20000,'该字段不能自动派生值。');
return;
Else
select lsh into outlsh from ys_lsh where tablename = as_table_name;
If outlsh is null Then
outlsh:= '1';
Else
outlsh:= to_char(to_number(outlsh) + 1);
End if;
update ys_lsh set lsh =outlsh where tablename = as_table_name;
End If;
return;
End;没有任何问题呀?
请教一下,declar起什么作用啊
写 trigger 时需要