注册
达梦数据库-错误码-[-2051]-分析处理
技术分享/ 文章详情 /

达梦数据库-错误码-[-2051]-分析处理

PYZ 2024/08/30 670 0 0

错误码:-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);
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服