Oracle LiveSQL插入数据报错ORA-00984问题排查与解决咨询
问题分析与解决
报错原因拆解
select * from customers;返回no data found
本质是customers表当前没有任何数据,并非表不存在(表不存在会抛出对象不存在的错误),只是个空表而已。INSERT语句报ORA-00984: column not allowed here
核心问题是Oracle语法中字符串常量必须用单引号包裹,你用了双引号"name-1",在Oracle里双引号是用来引用特殊命名的标识符(比如带空格的列名、大小写敏感的表名)的,数据库会把"name-1"识别成一个列名,但你的插入字段列表里并没有这个列,因此触发报错。
正确的插入方法
把字符串值的双引号替换成单引号即可,修正后的插入语句:
INSERT INTO customers (customer_id, customer_name, city) VALUES (1, 'name-1','city-1');
执行这条语句后,再运行select * from customers;就能看到刚插入的数据了。
额外提示:如果字符串本身包含单引号(比如名字O'Neil),可以用两个单引号转义,写成'O''Neil'。
内容的提问来源于stack exchange,提问作者juan
相关产品推荐
相关产品推荐

