J'ai cette fonction PL/SQL qui accepte le nom d'un étudiant (f_name). La fonction affiche ensuite toutes les informations pour l'étudiant donné à partir d'une table préfabriquée appelée étudiants. La table contient 5 colonnes, 2 types de nombres et 3 types varchar2. Si le nom n'est pas trouvé dans la table, un message d'erreur est renvoyé. Mon code à ce jour estPL/SQL Fonction pour retourner varchar2/nombres
CREATE OR REPLACE FUNCTION studentName(
f_name IN VARCHAR2)
RETURN
IS
v_test students%rowtype;
CURSOR c1
IS
SELECT * FROM students WHERE first_name = f_name;
BEGIN
OPEN c1;
FETCH c1 INTO v_test;
IF c1%notfound THEN
v_test := NULL;
END IF;
CLOSE c1;
RETURN v_test;
END;
Je continue à recevoir:
PLS-00382: l'expression est de mauvais type
Je crois que de ma déclaration initiale varchar2 de retour. Comment autoriser le retour à accepter à la fois le type varchar2 et le type de numéro?
Le type de v_test que vous renvoyez 'students% rowtype;' est en conflit avec votre type de retour 'varchar2'. En fait, pour accepter le retour dont vous avez besoin, changez le type de retour en 'students% rowtype' – SomeJavaGuy
' students% rowtype' est un type de * une variable *, quel est le problème? – smnbbrv
fixe jamais merci les gars – rob