Warnung: Verfahren erstellt, mit Kompilierungs-Fehler in oracle
TABELLE ANLEGEN:
create table customer (Name varchar2(10), Address varchar(40), Contact number);
CREATE PROCEDURE FOR INSERT:
CREATE OR REPLACE PROCEDURE SP_CUSTOMER (
p_name customer.Name%TYPE,
p_address customer.Address%TYPE,
p_contact customer.Contact%TYPE)
IS
BEGIN
INSERT INTO customer ("Name", "Address", "Contact")
VALUES (p_name, p_address, p_contact);
COMMIT;
END;
/
FEHLER:
ES ZEIGT sich: Warnung: Verfahren geschaffen, mit der Kompilierung Fehler.
CREATE PROCEDURE FOR SELECT:
CREATE OR REPLACE PROCEDURE SP_SELECT_CUSTOMER (
p_name customer.Name%TYPE,
p_address customer.Address%TYPE,
p_contact customer.Contact%TYPE)
IS
BEGIN
SELECT Name, Address, Contact FROM customer;
END;
/
FEHLER:
ES ZEIGT sich: Warnung: Verfahren geschaffen, mit der Kompilierung Fehler.
Was ist das problem.? Wie es zu lösen.?
Du musst angemeldet sein, um einen Kommentar abzugeben.
--Sie brauchen nicht, um die Spalte in Anführungszeichen
--nur mit einem refcursor zum zurückgeben der Ergebnismenge
BEARBEITEN wenn Sie möchten, finden Sie details basierend auf name ,dann passieren einem IN-parameter und verwenden Sie es als filter-Bedingung.
Wenn Sie kompilieren etwas in SQL*Plus und Sie erhalten "Kompilierungs-Fehler", das erste, was Sie tun möchten, ist zu
SHOW ERRORS
, die Ihnen sagen, was eigentlich falsch gelaufen ist.Ihrer ersten Verfahren hat das problem, dass die Spaltennamen nicht überein, werden die Spaltennamen aus der Tabelle. Ihre Tabellendefinition hat
Name
,Address
undContact
ist, sondern weil Sie es noch nicht verwendet, doppelte Anführungszeichen, den Namen der Spalten tatsächlichNAME
,ADDRESS
undCONTACT
- aber Ihre insert-Anweisung wird verwendet, doppelte Anführungszeichen, so versucht zum einfügen inName
etc. Einfach loszuwerden, die double-quotes, Sie brauchen Sie nicht hier.In Ihrem zweiten Verfahren, Sie haben eine SELECT-Anweisung in PL/SQL, aber du nicht geben Sie an, wo die resultierenden Daten. Du brauchst ein
INTO
- Klausel, oder vielleicht noch eine SCHLEIFE über den resultierenden Datensätzen.