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

Žádná další data ke čtení ze zásuvky

Obecná rada pro odstraňování chyb „Žádná další data ke čtení ze zásuvky“.

Tyto chyby jsou obvykle způsobeny jinou závažnou chybou, jako je chyba ORA-600. Problém tak vážný, že proces serveru selhal a nemohl ani odeslat klientovi správnou chybovou zprávu. (Dalším běžným důvodem těchto chyb je odpojení sítě způsobené SQLNET.EXPIRE_TIME nebo jiným procesem, který ukončí staré relace.)

Podívejte se do protokolu výstrah a zjistěte původní chybovou zprávu.

V tomto adresáři vyhledejte soubor alert_[name].log:select value from v$parameter where name = 'background_dump_dest';

Až najdete konkrétní chybovou zprávu a podrobnosti, přejděte na support.oracle.com. Použijte "nástroj ora-600" a poté vyhledejte první číslo za zprávou ORA-600.

Obvykle bude jeden nebo více článků pro tento konkrétní typ chyby ORA-600. Použijte přesnou verzi a platformu k zúžení seznamu možných chyb. (Nebuďte však překvapeni, pokud jsou "Ovlivněné verze" v článku chybné. Tvrzení společnosti Oracle o "opraveno ve verzi x.y" nejsou vždy pravdivá.)

Články obvykle podrobněji vysvětlují, jak k problému došlo, možná řešení a řešení, které obvykle zahrnuje opravu nebo upgrade.

V praxi málokdy chcete řešit tyto problémy. "Typickou" radou je kontaktovat podporu Oracle, abyste ověřili, že skutečně máte stejný problém, získejte opravu, získejte povolení a snižte prostředí (prostředí) a poté opravu použijte. A pak si pravděpodobně uvědomíte, že patch nefunguje. Gratulujeme, právě jste ztratili spoustu času.

Místo toho se obvykle vyhnete problém s jemnou změnou dotazu nebo postupu. V Oracle je mnoho funkcí, téměř vždy existuje jiný způsob, jak to udělat. Pokud kód nakonec bude vypadat trochu divně, přidejte komentář, abyste varovali budoucí programátory:"Tento kód vypadá divně, aby se předešlo chybě X, která by měla být opravena ve verzi Y."

Konkrétní rada pro tento kód

Pokud je to opravdu celý váš postup, měli byste jej nahradit něčím takovým:

insert into local.tab3(col1, col2, col3, col4)
select tab1.col1, tab1.col2, tab2.col1, tab2.col2
from [email protected] tab1
join [email protected] tab2
    on tab1.col1 = tab2.col1
    and tab1.col2 = tab2.col2;

Obecně byste měli vždy dělat věci v SQL, pokud je to možné. Zvláště pokud se můžete vyhnout otevírání mnoha kurzorů. A zejména pokud se můžete vyhnout otevírání mnoha kurzorů do vzdálené databáze.



  1. Parametry Oracle s příkazem IN?

  2. Postgres – Převeďte seznam sousedství na vnořený objekt JSON

  3. Jak deklarovat proměnnou v MySQL?

  4. xampp MySQL se nespustí