执行SQL失败,提示批处理中出现错误: ORA-00911怎么解决?

不,我过去曾多次遇到过此 ORA-009 1 1 错误。
你是对的,半角和全角可能混淆了。

记得有一年,我负责一个小型银行系统,使用的是Oracle 1 1 g。
有一个实习生,刚刚接受了一个报告要求,但在运行 SQL 时不断出错。
我一看,哦,SQL语句里到处都是全角逗号、全角引号、全角分号。
这家伙写代码的时候习惯加分号,结果他直接复制粘贴到SQL里了。
更改后,将全角符号替换为半角符号,错误立即消失。

还有一次,在杭州,我们团队搭建了一个ERP系统。
客户数据是使用Excel导入的,但保存时未设置为半角。
结果导入Oracle 1 9 c又出现ORA-009 1 1 检查了半天,发现是某个区域全角冒号导致的。
更改数据格式后,问题解决。

所以你看,你是对的,最常见的字符是全角字符。
特别是全角逗号、分号和引号。
有时很奇怪。
我写的SQL看起来是正确的,但是当我复制它时,它随机选择了太多的全宽度。

但是你提到的其他原因我也遇到过。
例如,有一次调用Java存储过程时,参数类型错误。
它最初是 NUMBER 类型。
我向它传递了一个字符串,它还报告了 ORA-009 1 1 这取决于你如何编写代码。

另外,您提到了分号问题。
事实上,某些客户端默认包含分号,例如 SQL Developer。
写SQL的时候,如果客户端自动加了分号,也会报这个错误。
之前用过SQLPlus,所以习惯了不加,写完语句直接回车。

我也遇到过一次字符集不匹配的情况。
几年前我正在开发一个旧系统,Oracle 1 0g,字符集是WE8 ISO8 8 5 9 P1 客户端使用IE浏览器登录,系统设置为WE8 MSWIN1 2 5 2 导致中文数据传输时有时会出现乱码,有时会报ORA-009 1 1 当时我们改变了客户端中的NLS_LANG,或者直接用SQL中的UNICODE保存,问题就解决了。

你提到的display_cursor,我也用过。
我用它来分析 Oracle 1 2 c 上的 SQL 性能。
能够清楚地看到实际的执行计划比展示它更好。
特别是统计信息,有时表数据发生变化,估计的执行计划变得不准确。
我记得有一次,一个查询运行得很慢。
我用display_cursor来查看它。
原来是期望全表扫描,但实际上使用了索引。
然后我们需要重新排列索引。

一般来说,ORA-009 1 1 错误是最常见的半角和全角问题。
二是语句写错,比如加了分号。
字符集问题虽然很少见,但应该得到解决。
对于其他类型的不一致,则取决于代码的编写方式。

检查你的SQL语句中是否有多余的分号,或者检查你的数据是否有有混合的全角字符。
关于字符集,还要检查客户端和服务器设置。
一般问题都可以解决。

sql2008+创建数据库关系图时,报错无效的类字符串。

问题就在这里。
拼写错误和语法格式问题会导致“类似无效字符串”错误。

别相信。
该错误代码来自其他版本或数据库系统,请直接复制粘贴。

请停止这种行为。
首先检查拼写以确保大小写和语法正确,然后逐步测试您的写作,最后检查官方文档或更新您的软件。

sql2008 创建数据库关系图时,报错无效的类字符串。

无效的类字符串错误。

检查表之间的外键约束。

确保这些表位于同一数据库中。

检查 SSMS 版本兼容性。

清除 SSMS 缓存。

重新安装 SQL Server Management Studio。