建立一存储过程如下
create or replace procedure sp_a(pi_test nvarchar2) is
v_test nvarchar2(7);
begin
v_test := '20'||'000'; --这一个地方总提示06502的错误,我改成v_test := '20'||'0'后却不再提示
v_test := ('20'||'000');--这个可以通过
v_test :='a';--可以通过
end sp_a;------------
我定义的v_test是7位长,而我赋值的变量是两位常量+三位常量=五位常量.应该是可以放得下得,为什么总提示6502错误,
而我把v_test加长或者把常量减掉两位,居然就不提示了,或者把这个表达式加上括号,也不会报错.
请问各位问题出在哪里?应该怎么办?
create or replace procedure sp_a(pi_test nvarchar2) is
v_test nvarchar2(7);
begin
v_test := '20'||'000'; --这一个地方总提示06502的错误,我改成v_test := '20'||'0'后却不再提示
v_test := ('20'||'000');--这个可以通过
v_test :='a';--可以通过
end sp_a;------------
我定义的v_test是7位长,而我赋值的变量是两位常量+三位常量=五位常量.应该是可以放得下得,为什么总提示6502错误,
而我把v_test加长或者把常量减掉两位,居然就不提示了,或者把这个表达式加上括号,也不会报错.
请问各位问题出在哪里?应该怎么办?
2 v_test nvarchar2(7);
3 begin
4 v_test:='20'||'000';
5 dbms_output.put_line(v_test);
6 end;
7 /
20000PL/SQL 过程已成功完成。