Frage

Ich habe ein Oracle-Skript, das wie folgt aussieht:

variable L_kSite number;
variable L_kPage number;
exec SomeStoredProcedureThatReturnsASite( :L_kSite );
exec SomeStoredProcedureThatAddsAPageToTheSite( :L_kSite, :L_kPage );
update SiteToPageLinkingTable 
set HomePage = 1 
where kSite = :L_kSite and kPage = :L_kPage;

Angeblich handelt es sich bei der letzten Anweisung um eine gültige Verwendung einer Bind-Variablen, aber wenn ich versuche, das Skript auszuführen, wird in der letzten Zeile Folgendes angezeigt:

SQL Error: Missing IN or OUT parameter at index:: 1

Ich bin mir nicht sicher, wie ich hier vorgehen soll, da ich mich mit Oracle nicht besonders gut auskenne.

War es hilfreich?

Lösung 2

Basierend auf den oben genannten Kommentaren habe ich dies unter SQLPLUS anstelle des SQL -Entwicklers und in der Update -Erklärung perfekt ausgeführt, sodass ich der Ansicht war, dass dies ein Problem im SQL -Entwickler ist, insbesondere da keine ORA -Fehlernummer zurückgegeben wurde. Vielen Dank, dass Sie mich in die richtige Richtung geführt haben.

Andere Tipps

Ich hatte einen ähnlichen Fehler auf meiner Seite, als ich JDBC im Java -Code verwendete.

Entsprechend Diese Internetseite (Der zweite Awnser) Es schlägt vor, dass Sie versuchen, die Abfrage mit einem fehlenden Parameter auszuführen.

Zum Beispiel :

exec SomeStoredProcedureThatReturnsASite( :L_kSite );

Sie versuchen, die Abfrage ohne den letzten Parameter auszuführen.

Vielleicht in SQLPlus Es hat nicht die gleichen Anforderungen, daher war es vielleicht ein Glück, dass es dort funktioniert hat.

Ich denke, es ist mit JDBC verwandt.

Ich habe ein ähnliches Problem (fehlender Param), wenn ich einen solchen Zustand wie diesen habe:

a = :namedparameter and b = :namedparameter

Es ist in Ordnung, wenn ich das habe:

a = :namedparameter and b = :namedparameter2  (the two param has the same value)

Es ist also ein Problem mit den benannten Parametern. Ich denke, es gibt einen Fehler mit dem benannten Parameterhandling. Es sieht so aus, als ob nur der erste Parameter den richtigen Wert erhält, der zweite wird nicht von Treiberklassen festgelegt. Vielleicht ist es kein Fehler, nur ich weiß nichts, aber ich denke, das ist der Grund für den Unterschied zwischen dem SQL Dev und dem SQLPLUS für Sie, denn soweit ich weiß, verwendet SQL Developer JDBC -Treiber.

Ich bekam den gleichen Fehler und fand die Ursache, falsch oder fehlend zu sein Unbekannter Schlüssel. (Mit JDBC)

Ich hatte diesen Fehler aufgrund eines Tippfehlers in einem Alias ​​einer Spalte, die ein Fragezeichen enthielt (z. B.(Vertrag.Referenz als Vertrag?Ref)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top