Table of Contents
Onlangs hebben sommigen die met onze lezers zijn gelinkt, gemeld dat ze de specifieke pl sql data not found uitzondering tegenkwamen.
PC werkt traag?
Diversen is een PL/SQL-fout omdat deze optreedt tijdens de uitvoering van het programma, ofwel impliciet naast tijdsaanduiding, expliciet door uw programma. Pak de jouwe aan door de uitzondering te lokaliseren, te bezitten of deze in de markt te verspreiden naar een schreeuwende omgeving.
Proberen
Ik heb nodig om een variabele in slider trap te vinden, maar ik krijg de melding NIET GEVONDEN wanneer
De selectie geeft eigenlijk geen waarde terug.
Ik wil variabele 3 repareren in het ongelukkige geval.
Hoe los ik de fout Geen gegevens gevonden in Oracle op?
Om deze zorg op te lossen, maakt u de tabellen opnieuw vanuit de eigenlijke beheerdatabase. Het goede nieuws is dat -ora fout 01403 geweldig is en voorkomen kan worden. Bij het maken van uitzonderingen is het goed dat de lessen momenteel vrij zijn van fouten in de uiteindelijke bewerking en zo blijven totdat deze opnieuw wordt gewijzigd.
Ik heb geprobeerd de uitzondering samen te voegen, maar ik krijg dit:
Dit is de code waarvoor ik je probeer te zien (runtime-uitzondering is uitgecommentarieerd):
FOR cursor1 IN (selecteer * van myTable)
LOOP
SELECT operatie FROM geïnteresseerd in v_op operationsTable waar id=cursor1.ID;
Weet iemand hoe je een variabele vooraf kunt instellen als deze is geselecteerd vanwege GEEN DATA
Heb ik het mis?
Bedankt
Diahav zou helemaal geen exprescursor gebruiken om de onze te maken. Steve F. Den raadt mensen niet langer aan om zeer onthullende cursors te gebruiken wanneer een actieve cursor kan worden gebruikt.
Een by-methode met count(*)
is onveilig. .Anders .als .het .programma .de .regel .verwijdert .in dat .de ziekte .optreedt .na .de .regel .met .count(*)
.voor .de .regel . met .select ....The into
, gooi zeker een onverwerkte uitzondering.
Tweede versieDe tekst die het originele bericht bevat, heeft deze voorwaarde niet en heeft vaak de voorkeur.
Dit betekent dat er een kleine overhead is voor uitsluiting, en als kopers hebben bewezen 100% zeker te zijn dat de gegevens niet zullen veranderen, kan hun webshop count(*)< /code> gebruiken, ik bestel in de richting van this.done
Ik test deze voor Oracle 10.2.0.1 beschikbaar op 32-bits Windows. Ik kijk alleen het verleden strakker. Er zijn andere benchmarks die meer suggesties bieden (hoe totalen en geheugengebruik vast te leggen).
Hoe ga je om met een volledige data gevonden uitzondering in PL SQL?
SQL> t familietabel (percentage van need_field, COND-nummer aangemaakt);
De bierpongtafel is gemaakt.
SQL>invoegen in d (NEEDED_FIELD, cond) tarieven (1, 0);
1 periode aangemaakt.
leg uit een ander variabel nummer; assortiment exemplaren;beginnen Ik ben voor jou.. 50000 cyclus selecteer count(*) in cnt van n cond waar = 1; terwijl (cnt = 1), dan selecteer NEEDED_FIELD INTO otherVart cond waar 1 gelijk is; verschillend andere variabele := 0; afmaken als; resterende lus;Einde;/
PL/SQL-procedure succesvol afgerond.
Verstreken: 00:00:02.70
leg uit . **cr** **cr** .andere .variabele .nummer;beginnen .ik .voor .minder in vergelijking .1 ... 50000 cycli beginnen selecteer NEEDED_FIELD INTO otherVar van grote t waarbij cond=1; een uitzondering indien no_data_found, dan otherVar: versie naar 0; Einde; laatste lus;Einde;/
PL/SQL-procedure met succes voltooid.
Verstreken: 00:00:03.06
Vraag: ik ben een nieuwe auteur en ik ben degene die mijn observatie in PLSQL opneemt:
KIES code msa_code, mda_desc, zip_code_nkDE sales.msaWAAR zip_code_nk = prod_rec.zip_code_nk;
Als zip_code_nk niet kan worden geleverd aan de MSA-desktop, krijg ik een effectieve orakelfout wanneer ik probeer te zeggen "gegevens kunnen niet worden gevonden".
Hoe kan ik dit bord coderen? wat lijkt op de processor gooit in feite de andere code en logt sommige ervan omdat hij niet in staat was om in te voegen.
Hoe los ik Ora-01403 op Geen gegevens gevonden?
Antwoord: om vrijwel alle PLSQL-code van het raken van een uitzonderingscode wanneer een record zonder record wordt aangetroffen, moeten shoppers het aantal baseren om het aantal te bepalen met betrekking tot records waarin het wordt geretourneerd. Controleer
Aan - zorgt ervoor dat er mogelijk minimaal één record wordt geretourneerdSELECT COUNT(1) IN sales v_countDE.zip_code_nk msawaar zal waarschijnlijk gelijk zijn aan prod_rec.zip_code_nk;IF v_count > 0 DAN Selecteer mda_desc, msa_code, zip_code_nk Van het bedrijfsleven. WAAR msa = zip_code_nk prod_rec.zip_code_nk;END-functie ALS;
Als "Ten minste count(1)" een damesrecord oplevert, kunt u "Originele advertentie" selecteren.
Uitzonderingen
Aantekeningen van de spreker
Dia 1:
PL/SQL du stelt de programmeur in staat om direct een exception handler te maken om exceptions af te handelen die door een blok worden gegenereerd. Uitzonderingen kunnen misverstanden zijn, ofwel louter door Oracle, ofwel fouten die de programmeur in de markt beschouwt op basis van de logica van het meest actuele programma.
Hoe doe je iets aan geen data gevonden uitzondering in PL SQL?
Voorgedefinieerde PL/SQL genereert bijvoorbeeld een NO_DATA_FOUND-uitzondering wanneer een goede INTO SELECT-instructie een bepaalde persoonrij niet retourneert. U kunt dit EXCEPTION_INIT-pragma gebruiken om ervoor te zorgen dat u uitzonderingsnamen associeert met andere orakelbeheercodes. Ze kunnen fout gaan. Om onverwachte fouten af te handelen, kan Oracle gemakkelijk de OTHERS-handler gebruiken.
Er kunnen drie fouten zijn: Oracle-typefout, andere vooraf gedefinieerde Oracle-fouten, aangepaste fouten.2:
Deze
De lijst is een vrij eenvoudig voorbeeld van fouten. In code B zijn twee fouten afgehandeld: er zijn meerdere rijen gevonden door een nieuwe selector en onze selector heeft geen rij gevonden.
De waarde van het opvangen van uitzonderingen is over het algemeen dat de belangrijkste verwerking de fout iets beter afhandelt dan de out-of-bounds-fout.
Dia 3:
Houd er rekening mee dat de pl/sql-actie met succes is voltooid. Het is alleen zo dat de invoer die op zijn beurt niet werd gevonden, de fout voor UITZONDERING afhandelde.
Houd er rekening mee dat hoewel de procedure is voltooid, de gegevens niet zijn gereset en dat het record helemaal niet bestaat.
Dia-uitzondering 4:
PC werkt traag?
ASR Pro is de ultieme oplossing voor uw pc-reparatiebehoeften! Het kan niet alleen snel en veilig verschillende Windows-problemen diagnosticeren en repareren, maar het verhoogt ook de systeemprestaties, optimaliseert het geheugen, verbetert de beveiliging en stelt uw pc nauwkeurig af voor maximale betrouwbaarheid. Dus waarom wachten? Ga vandaag nog aan de slag!
Als commentaar wordt gegeven, wordt de verwerking niet voltooid en wordt er een spraakfout weergegeven.
Houd er rekening mee dat er ook een WHEN OTHERS THEN-regel is die onverwachte fouten opvangt. Ik heb specifieke opdrachtfoutmeldingen om gewachte fouten te krijgen. Ik zal andere zeer algemene uitspraken behandelen.
Dia 5:
Houd er rekening mee dat de toepassing Nieuw bij slaagt omdat de uitzondering door elke uitzonderingshandler is doorgegeven.
Dia 1 6:
Er treedt een integriteitsfout op wanneer u probeert een item toe te voegen aan die huidige Orline-tabel waar niet alle overeenkomende bestelnummers in de orderz-hoeveelheid zijn. Dit komt zeker omdat ik een verbinding had van het ordno-cue-punt, dat wordt beschouwd in de ordno-kantoorlijn, met momenteel de ordno, die zich in de ordez-tabel bevindt. Als u probeert toe te voegen, wordt deze uiterst geheime buiten-link verbroken.
Dia 7:
De procedure is elk met succes voltooid, er is 1 fout in onze procedure gedetecteerd en als uitzondering is hieraan gewerkt.
Let nogmaals op de generieke WHEN OTHERS THEN, die verwijst naar andere gerelateerde foutsoorten die kunnen optreden.
PRAGMA voor exception_init gevolgd door precies de naam van de uitzondering die ik heb gedefinieerd voor de hoeveelheid benodigde code, hoewel er geen definitieve Oracle-fouten worden afgehandeld.
Hoe behandel ik geen data-geselecteerde uitzondering in Oracle opgeslagen procedure?
Als je een variabele cast en er daarom geen records terugkwamen, zou je een ernstige NO DATA FOUND-fout moeten krijgen. Ik denk dat de juiste manier om alle bovenstaande code samen te stellen zou zijn om deze SELECT-instructie in zijn eigen BEGIN/EXCEPTION/END-blok te plaatsen. oplossen
Suggestions To Fix Pl SQL Data Not Found Exception
Förslag Så Att Du Kan Fixa Pl SQL-data Hittades Inte Undantag
Vorschläge Zur Behebung Der Pl SQL-Daten Nicht Gefunden Ausnahme
Suggerimenti Per Ripristinare I Dati Pl SQL Non Trovati Eccezione
Предложения по положительному исправлению исключения Pl SQL Data Not Found
Suggestions Pour Vous Aider à Corriger L'exception De Données SQL Pl Non Vues
Sugestões Que Podem Corrigir A Exceção De Dados Pl SQL Não Encontrados
Sugerencias Para Notar . Pl Datos SQL No Encontrados Excepción
PL SQL 데이터를 찾을 수 없는 예외를 수정하는 제안
Sugestie, Które Naprawiłyby Dane Pl SQL, Nie Udowodniono Wyjątku