ORA-06550 Erreur en PL/SQL
Eh bien, je suis en train de lancer ce script en PL/SQL. Mais je suis constamment à obtenir des erreurs, j'ai essayé de remplacer les guillemets simples avec des guillemets, mais pas de l'utiliser.
ACCEPT p_name PROMPT "Enter Customer Name: "
VARIABLE g_output VARCHAR2(200)
DECLARE
v_street VARCHAR2(30);
v_city VARCHAR2(20);
v_prov VARCHAR2(20);
v_postal VARCHAR2(10);
BEGIN
SELECT cstreet, ccity, cprov, cpostal
INTO v_address,v_city,v_state,v_zip
FROM customer
WHERE cname = "&p_name";
:g_output := "&p_name" || " " ||v_street || " " || v_city;
:g_output := :g_output " " || v_prov || " " || v_postal;
END;
/
PRINT g_output
Erreur:
Enter Customer Name: Ankur Kaushal
old 10: WHERE cname = "&p_name";
new 10: WHERE cname = "Ankur Kaushal";
old 11: :g_output := "&p_name" || " " ||v_street || " " || v_city;
new 11: :g_output := "Ankur Kaushal" || " " ||v_street || " " || v_city;
:g_output := :g_output " " || v_prov || " " || v_postal;
*
ERROR at line 12:
ORA-06550: line 12, column 27:
PLS-00103: Encountered the symbol " " when expecting one of the following:
. ( * @ % & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like
between || indicator multiset member SUBMULTISET_
The symbol "." was substituted for " " to continue.
Input truncated to 14 characters
G_OUTPUT
--------------------------------------------------------------------------------
Une erreur que je fais ici?
- Utilisez des guillemets simples, mais l'utilisation de deux guillemets simples autour de &p_name
- Utilisé des guillemets à ce moment, mais je suis maintenant obtenir cette erreur; ERREUR à la ligne 7: ORA-06550: ligne 7, colonne 34: PL/SQL: ORA-00904: "CPOSTAL": identifiant invalide ORA-06550: ligne 7, colonne 4: PL/SQL: SQL Déclaration ignoré
- N'client dispose d'un cpostal champ?
Vous devez vous connecter pour publier un commentaire.
Ne devrait pas l'avant-dernière ligne
?
Oracle SQL et PL/SQL utilise des guillemets simples
'
pour délimiter les chaînes de caractères. Les guillemets doubles"
sont utilisés pour signaler les identificateurs (noms de table, les noms de colonnes...).Remplacer tous vos guillemets doubles par des guillemets simples.
Également noter que SQL*Plus est un mauvais outil pour être utilisé comme une interface utilisateur. Il n'y a aucun moyen de faire votre propre code du travail dont les noms comportent des guillemets ("O'Reilly"), sauf l'utilisateur d'entrer manuellement les deux guillemets simples ("O"Reilly").
Il n'y a pas de déclaration de
v_state
.