im très débutant dans psql et j'ai une question.
Voici le code: p> question est très simple: comment puis-je passer du texte à ma variable ? Si j'entraîne un numéro, il fonctionne correctement et je peux lire dans le journal mon numéro, mais si je passe un texte comme "myText" au lieu d'un numéro, j'ai eu une erreur: p> old:BEGIN
dbms_output.put_line('My input variable is: '||&myVariable);
END;
new:BEGIN
dbms_output.put_line('My input variable is: '||mytext);
END;
Error starting at line 5 in command:
BEGIN
dbms_output.put_line('My input variable is: '||&myVariable);
END;
Error report:
ORA-06550: 2 sor, 50 oszlop:
PLS-00201: identifier 'MYTEXT' must be declared
ORA-06550: 2 sor, 3 oszlop:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
3 Réponses :
Vous n'avez pas de variable myText déclaré nulle part.
dbms_output.put_line('My input variable is: '||mytext); -- here is the error. It should be &myVariable.
Non, le code est ci-dessus, la valeur d'entrée est "mytext" que j'ai donné!
Vous devez spécifier le type de données dans le cadre du Accepter déclaration . Si aucun n'est donné, il suppose un numéro. P>
Essayez Accepter MyVariable Char Invite 'Valeur d'entrée:'; Code> à la place. P>
Vous devez mettre en place la variable de substitution du personnage dans des guillemets lorsque vous l'utilisez, s'il s'agit d'une chaîne, sinon Oracle tente d'interpréter la valeur em> comme nom d'objet. Vous pouvez voir que sur la "nouvelle" version (affichée parce que vous avez définir vérifier sur code>) et Sexta13 fais allusion à cela aussi. Donc, vous feriez:
dbms_output.put_line('My input variable is: &myVariable');
Vous devriez probablement utiliser deux ampersands: dbms_output.put_line ('&& myvariable'); code> de cette façon, il ne demandera pas la valeur si elle est déjà définie.