Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORA-00900:无效的SQL语句-无法确定错误所在_Sql_Oracle_Insert Into_Ora 00900 - Fatal编程技术网

ORA-00900:无效的SQL语句-无法确定错误所在

ORA-00900:无效的SQL语句-无法确定错误所在,sql,oracle,insert-into,ora-00900,Sql,Oracle,Insert Into,Ora 00900,我尝试执行以下操作: IF NOT EXISTS (select * from IT_IMAGES where IT_CODE='8717163044612') BEGIN INSERT INTO IT_IMAGES (LARGE_IMG,SMALL_IMG,IT_CODE,LAN_CODE) VALUES ('7290011051310.jpg','7290011051310.jpg','8717163044612','1') END 但我一直得到ORA-00900:无

我尝试执行以下操作:

IF NOT EXISTS (select * from IT_IMAGES where IT_CODE='8717163044612') 
  BEGIN 
     INSERT INTO IT_IMAGES (LARGE_IMG,SMALL_IMG,IT_CODE,LAN_CODE) VALUES ('7290011051310.jpg','7290011051310.jpg','8717163044612','1')
  END

但我一直得到ORA-00900:无效的SQL语句。你能帮我解决这个问题吗?

以下几点应该对你有用:

 INSERT INTO IT_IMAGES(LARGE_IMG, SMALL_IMG, IT_CODE, LAN_CODE)
    SELECT '7290011051310.jpg', '7290011051310.jpg', '8717163044612', '1'
    FROM dual
    WHERE NOT EXISTS (SELECT 1 FROM IT_IMAGES WHERE IT_CODE = '8717163044612');
我想,除了Oracle中的
begin
/
end
语句之外,我没有使用
if
。如果,您可能需要一个编程块来使用
(MySQL确实需要)。不过,上述方法应该可以解决这个问题


是在SQL FIDLE中工作的一个示例。

您是在存储过程、触发器、函数还是PL/SQL块中运行它?或者你只是在里面运行这个代码,比如说,toad?我使用直接sql和toady。你的代码在sql Server上运行得很好。这就是你在这里发布的完整查询,还是有更多的问题?嗯。。。我试过了,现在我发现ORA-00933:SQL命令不能在SQL FIDLE中正常工作(请参阅答案中的链接)。是的,在Oracle中,只能在PL/SQL块中使用条件逻辑,而不能在普通SQL中使用。@AlexPoole。谢谢你的确认。