ORA-00900 ugyldig SQL-sætning er en af de almindelige fejl
Her er, hvad Oracle-dokumentationen siger om denne fejl
Reference:Oracle-dokumentation
Tjekliste for at løse den ugyldige SQL-sætning ORA-00900
(1) Denne fejl opstår ofte, når du forsøger at oprette en Oracle-procedure, og Procedural Option ikke er installeret. For at afgøre, om den proceduremæssige mulighed er blevet installeret, skal du åbne en Oracle-session ved hjælp af SQL*Plus. Hvis PL/SQL-banneret ikke vises, ved du, at Procedural Option ikke er blevet installeret.
(2) ORA-00900 kan opstå under forsøg på at bruge et databaselink. Mange brugere oplever, at de støder på ORA-00900, da de forsøger at forespørge felter, der kan have fungeret før 2000. For at løse ORA-00900, på den lokale database, prøv at ændre din init.ora-parameter NLS_DATE_FORMAT, og brug derefter dobbelte anførselstegn (i stedet for enkelt) omkring værdien
alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";
(3) Brug af execute-sætning på sql-udvikler /JDBC-forbindelse
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); ORA-00900: invalid SQL statement
execute er sqlplus-indstillingen, bør vi bruge en af nedenstående muligheder i applikations-/andre sprogprogrammer
begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); end; or begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30) end; /
(4) Mange gange laver udviklere fejl i plsql-blokken og skriver udsagn som
v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)'; execute immediate v_dynsql;
Ovenstående kode giver ORA-00900 som dbms_utility.analyze_schema('OKX','ESTIMATE',30);
er ikke en gyldig erklæring
Rettelsen er at bruge start og slut som angivet nedenfor
v_dynsql:= q'[BEGIN dbms_utility.analyze_schema('OKX','ESTIMATE',30); END;]'; execute immediate v_dynsql;
(5) Hvis du ønsker at beskrive en tabel i PLSQL
SQL> begin execute immediate 'describe FND_USER'; 2 end; 3 / begin execute immediate 'describe FND_USER'; * ERROR at line 1: ORA-00900: invalid SQL statement ORA-06512: at line 1
Du kan ikke bruge desc her. vi vil måske vælge det baseret på forespørgsel
begin execute immediate q'[select COLUMN_NAME,DATA_TYPE from all_tab_columns where table_name = 'FND_USER' order by column_id]'; end; /
(6) Hvis du forsøger at forklare plan om oprettelse af visningserklæring
SQL> explain plan for create view test as select * from dual; explain plan for create view test as select * from dual * ERROR at line 1: ORA-00900: invalid SQL statement
Håber du kan lide de forskellige måder at rette ORA-fejlene på. Giv venligst feedback på det
Relaterede artikler
ORA-00911:ugyldigt tegn
ORA-29913:fejl under udførelse af ODCIEXTTABLEOPEN callout
ORA-27154:post/wait oprettelse mislykkedes under opstart
ORA-01111
ORA -00257 :arkiveringsfejl, tilslut kun internt indtil frigivet
ora-29283:ugyldig filoperation