ora-00972错误,标识太长

atention 2004-08-31 05:55:44
指SQL语句标识太长是什么意思 。我客户端使用的oracle provider for ole db ,如果客户端使用8.16则不报错,如果使用9.205则报以上错误,谁知道这是什么原因,在9i下如何解决
...全文
1018 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckysxn 2005-06-30
  • 打赏
  • 举报
回复
找一个最新的驱动吧
zh430 2005-05-25
  • 打赏
  • 举报
回复
升级经常带来这样的问题,没办法,只能用最稳定的版本了
rolandzhang 2005-05-25
  • 打赏
  • 举报
回复
sysdate>JOBPLANSTART and JOBSTARTACTUAL is null)不是标志符。
oracle规定想table,procedure等各种对象的名称最长不能超过30个字符。
我们原来的系统,有一个模块在界面上显示一个复杂查询的结果记录集,在服务器端和客户端都是8i的条件下开发的,运行正常,后来,服务器端和客户端都升级到9i,不能正常显示结果记录集了,客户端重新安装了8i,结果正常了。
存在oracle版本兼容问题
Gfire 2005-05-23
  • 打赏
  • 举报
回复
有可能是兼容的问题
which 2005-05-23
  • 打赏
  • 举报
回复
因为你服务器端版本不能低于客户端,否则可能造成不兼容情况
kulama2004 2005-05-17
  • 打赏
  • 举报
回复
ole db provider是可能对不同的版本产生错误的,但是这是ole db provider的对不同版本支持的问题
只要在SQL Plus里不错,就说明你语法没有问题
zhangmeiping 2005-05-17
  • 打赏
  • 举报
回复
我的sql语句是:
select projectName,

case
when (sysdate>JOBPLANSTART and JOBSTARTACTUAL is null) then 'a'
end "desc"

from projectJobInfo,projectinfo,phaseTable,jobTable
where projectJobInfo.projectId=projectinfo.projectId and
( (sysdate>JOBPLANSTART and JOBSTARTACTUAL is null) or
(sysdate>JOBPLANend and JOBendACTUAL is null) )

在程序里(客户端使用的ole db provider )提示ora-00972错误,标识太长的错误。但是使用sql plus(版本是9.2.0.1.0)却不出错。

试图将(sysdate>JOBPLANSTART and JOBSTARTACTUAL is null) 改成(sysdate>JOBPLANSTART ) 后(缩短了长度),没有提示出错了。 难道这也算个标识符?
CodeMagic 2004-08-31
  • 打赏
  • 举报
回复
ORA-00972 identifier is too long

Cause: The name of a schema object exceeds 30 characters. Schema objects are
tables, clusters, views, indexes, synonyms, tablespaces, and usernames.

Action: Shorten the name to 30 characters or less.

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧