sql >> Databasteknik >  >> RDS >> Oracle

ORA-00900:fel i en felaktig SQL-sats? Vad är det för fel på min sql?

Din DB Solo-klient verkar tolka det första semikolon som den ser som slutet på satsen, vilket är rimligt för vanlig SQL (DML eller DDL) men inte för PL/SQL.

Du kan se det från loggbilden du lagt upp; den behandlar create function ... v_ids integer del som ett påstående eftersom det slutar med det första semikolonet - det kompilerar men med ett fel. Sedan tar det nästa bit, upp till nästa semikolon, som en separat sats - v_str varchar2(5000) - och det är det som får ORA-00900, eftersom det inte är giltig SQL.

Enligt dokumentationen :

Så utifrån det verkar det inte förstå hur man behandlar PL/SQL annorlunda; men du kan ändra dina inställningar för att inte behandla semikolon som satsavgränsare - över hela linjen, vilket innebär att du måste lägga till GO efter både create type och create function uttalanden och alla andra frågor eller samtal du gör. Detta skulle likna att använda / överallt i SQL*Plus eller SQL Developer.

Det kan vara lättare att använda procedurredigeraren . Förmodligen efter att du har skapat typen och funktionen från objektwebbläsaren .

Eller, naturligtvis, använd en annan klient...




  1. SQL-gruppfunktion kapslade för djupt

  2. Förvandla datum till datumintervall i MYSQL --- hur man hanterar luckor i datumen

  3. Fyll i urvalsrutan från databasen med jQuery

  4. Hur man implementerar ett dubbelriktat unikt index över flera kolumner