sql >> Databáze >  >> RDS >> Oracle

Jak vyřešit ORA-00900

ORA-00900 neplatný příkaz SQL je jednou z běžných chyb
Zde je to, co o této chybě říká dokumentace oracle

Odkaz:Dokumentace Oracle

Kontrolní seznam pro vyřešení neplatného příkazu SQL ORA-00900

(1) Tato chyba se běžně vyskytuje, když se pokoušíte vytvořit proceduru Oracle a není nainstalována procedura. Chcete-li zjistit, zda byla nainstalována možnost Procedural Option, otevřete relaci Oracle pomocí SQL*Plus. Pokud se banner PL/SQL nezobrazí, pak víte, že Procedural Option nebyla nainstalována.

(2) ORA-00900 se může objevit při pokusu o použití databázového odkazu. Mnoho uživatelů zjišťuje, že se setkávají s ORA-00900, když se pokoušejí dotazovat na pole, která mohla fungovat před rokem 2000. Chcete-li vyřešit ORA-00900 v místní databázi, zkuste změnit parametr init.ora NLS_DATE_FORMAT a poté použijte dvojité uvozovky (místo single) kolem hodnoty


alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";

(3) Použití příkazu execute na sql developer /JDBC connection

execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
ORA-00900: invalid SQL statement

spustit je sqlplus, měli bychom použít některou z níže uvedených možností v programech aplikace/jiné jazyky

begin
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
end;
or
begin
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30)
end;
/

(4) Mnohokrát vývojáři dělají chyby v bloku plsql a píší příkazy jako

v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)';
execute immediate v_dynsql;

Výše uvedený kód dává ORA-00900 jako dbms_utility.analyze_schema(‘OKX‘,‘ESTIMATE‘,30);
není platné prohlášení

Oprava je použít začátek a konec, jak je uvedeno níže

v_dynsql:=
q'[BEGIN
dbms_utility.analyze_schema('OKX','ESTIMATE',30);
END;]';
execute immediate v_dynsql;

(5) Pokud chcete popsat tabulku v 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

Zde nelze použít desku. možná jej budeme chtít vybrat na základě dotazu

begin
execute immediate q'[select COLUMN_NAME,DATA_TYPE
from all_tab_columns
where table_name = 'FND_USER'
order by column_id]';
end;
/

(6) Pokud se snažíte vysvětlit plán vytvoření příkazu zobrazení

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

Doufám, že se vám líbí různé způsoby, jak opravit chyby ORA. Poskytněte nám prosím zpětnou vazbu

Související články
ORA-00911:neplatný znak
ORA-29913:chyba při provádění výzvy ODCIEXTTABLEOPEN
ORA-27154:vytvoření příspěvku/čekání se nezdařilo během spouštění
ORA-01111
ORA -00257:chyba archivátoru, připojit se pouze interně do uvolnění
ora-29283:neplatná operace se souborem


  1. Příklad spuštění Oracle před vložením NEBO aktualizací

  2. Nejčastější dotazy MySQL

  3. Jaké jsou rozdíly mezi seskupeným a neshlukovaným indexem?

  4. Kontejner Spring Docker nemá přístup ke kontejneru Postgres Docker