Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00900:грешка в невалиден SQL оператор? Какво не е наред с моя sql?

Вашият DB Solo клиент изглежда интерпретира първата точка и запетая, която вижда, като край на израза, което е разумно за обикновен SQL (DML или DDL), но не и за PL/SQL.

Можете да видите това от изображението на дневника, което сте публикували; третира функцията create function ... v_ids integer част като един оператор, защото завършва с първата точка и запетая - компилира се, но с грешка. След това приема следващата част, до следващата точка и запетая, като отделен израз - v_str varchar2(5000) - и това е, което получава ORA-00900, тъй като не е валиден SQL.

Според документацията :

Така че въз основа на това изглежда не разбира как да третира PL/SQL по различен начин; но можете да промените настройките си така, че точката и запетая да не се третират като разделители на изрази - навсякъде, което означава, че ще трябва да добавите GO след двата create type и create function извлечения и всякакви други запитвания или обаждания, които правите. Това би било подобно на използването на / навсякъде в SQL*Plus или SQL Developer.

Може да е по-лесно да използвате редактора на процедури . Вероятно след като сте създали типа и функцията от браузера на обекти .

Или, разбира се, използвайте различен клиент...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каскаден еквивалент на ограничение за ограничаване на Oracle в Sql Server

  2. Обединяването на връзки задължително ли е в ODP.NET?

  3. функция to_date със sysdate

  4. Обяснение на оператора на Oracle INTERSECT

  5. Къде се съхраняват Java класове в Oracle?