Aufruf einer Funktion innerhalb einer Prozedur

Ich entschuldige mich im Voraus für die wahrscheinlich wichtigste Frage. Ich bin student und es ist crunch time!

Ich bin mit Oracle 10g Express.

Erstellte ich eine Funktion:

create or replace FUNCTION test_glaccounts_description
(
account_description_param VARCHAR2
) 
RETURN NUMBER
AS
  description_dup_var NUMBER;
BEGIN
  SELECT 1
  INTO description_dup_var
  FROM general_ledger_accounts
  WHERE account_description = account_description_param;

  RETURN description_dup_var;  
  EXCEPTION 
    WHEN NO_DATA_FOUND THEN
    RETURN 0;
END;

Und verwenden möchten, die Funktion in eine Prozedur.
Ich habe versucht:

PROCEDURE insert_gla_with_test
(
  account_number_param  NUMBER,
  account_description_param VARCHAR2
)
 AS
BEGIN 
  IF test_glaccounts_description = 1 THEN
  INSERT INTO  general_ledger_accounts
  VALUES (account_number_param, account_description_param);
  ELSE raise_application_error (-20001, 'Duplicate account description');
  END IF;
END;

Aber es ist nicht wie die "test_gla_accounts" - Zeile.....was mache ich falsch?
Nach meinem Verständnis, gibt die Funktion einen Wert von 1 oder 0, in den Verfahren, wenn die Funktion zurückgegeben, eine 1, ich möchte die param Felder, die der Tabelle Hinzugefügt. Wenn die Funktion zurückgegeben 0, ich möchte die Prozedur zum auslösen des Fehlers.

Es ist immer hilfreich, poste den vollständigen Fehler-stack. Etwas zu sagen wie "Sie mag es nicht," sagt uns nicht, welche Fehlermeldung Sie bekommen. Ich dachte an die Fehler in meiner Antwort weiter unten. Wenn ich falsch geraten (könnte es mehr syntax-Fehler, zum Beispiel), die Buchung der volle Fehler-stack wird sehr nützlich sein.

InformationsquelleAutor Christa L | 2012-12-05

Schreibe einen Kommentar