错误码:-2051
错误内容:标示符长度非法
--创建表
create table t1 as select * from dba_objects;
--创建存储过程
create or replace procedure pro_test(vid in number) as
sqlstr varchar2(1000);
sqlcond varchar2(1000);
begin
sqlcond := ' where object_id in ('||vid||')';
sqlstr := 'select owner,object_name,object_type,"" as info from t1 '||sqlcond;
execute immediate sqlstr;
end;
--调用出现报错
call pro_test(685610515);
执行失败(语句1)
-2051: 标示符长度非法
-2051: PRO_TEST line 7
双引号无法表示为空,需要改为单引号
create or replace procedure pro_test(vid in number) as
sqlstr varchar2(1000);
sqlcond varchar2(1000);
begin
sqlcond := ' where object_id in ('||vid||')';
sqlstr := 'select owner,object_name,object_type,'''' as info from t1 '||sqlcond;
execute immediate sqlstr;
end;
--改为单引号后可以正常调用
call pro_test(685610515);
文章
阅读量
获赞