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