ORA-06550: ligne 1, colonne 7: PLS-00201: identificateur 'PAYMENT_UPDATE" doit être déclarée ORA-06550: ligne 1, colonne 7: PL/SQL: Déclaration ignoré
J'ai une procédure pour insérer des valeurs dans un tableau et de mettre à jour les lignes d'une autre table. La procédure compilé sans erreurs. Si j'manuellement l'appeler dans PL/SQL codes, les tableaux sont mis à jour.
CREATE OR REPLACE PROCEDURE payment_update
(bId IN number, pType IN varchar2, pAmt IN number )
AS
BEGIN
INSERT INTO payment
VALUES (PID_SEQ.NEXTVAL,
bId,
pType,
(SELECT CURRENT_DATE FROM DUAL),
pAmt);
UPDATE booking
SET payment_status = 'FP',
paid = pAmt
WHERE booking_id = bId;
END;
/
Je suis en train d'appeler cette procédure stockée dans une classe Java, à travers le clic d'un bouton. L'utilisateur entre des valeurs dans un champ de texte de la GUI cadre, ces valeurs doivent être envoyés à la procédure stockée.
C'est mon code Java -
private void payButtonActionPerformed(java.awt.event.ActionEvent evt) {
int i = unpaidJTable.getSelectedRow();
int bookingId =Integer.parseInt(bIdText.getText());
String pType = pTypeText.getText();
double pAmt = Double.parseDouble(pAmtText.getText());
CallableStatement callableStatement = null;
String paymentUpdateRecord = "{call payment_update(?, ?, ?)}";
try{
callableStatement = conn.prepareCall(paymentUpdateRecord);
callableStatement.setInt(1, bookingId);
callableStatement.setString(2, pType);
callableStatement.setDouble(3, pAmt);
callableStatement.executeUpdate();
conn.commit();
System.out.println("Successfully updated!");
}
catch(SQLException e){
System.out.println(e.getMessage());
}
En cliquant sur ce bouton, j'obtiens une erreur collé au-dessus de la question.
Quelqu'un peut-il svp m'aider? Je ne peux pas comprendre ce que j'ai besoin de le déclarer.
- Ne vous connectez au schéma correct ?
- Oui, c'est corrigé pour le bon schéma.
- je pense que votre problème est dans votre SGBD et pas avec Java vérifier ce lien experts-exchange.com/questions/21851939/...
- Si vous vous connectez à un compte d'utilisateur qui n'est PAS le propriétaire du proc, vous devez créer des subventions et des synonymes pour la connexion de compte d'utilisateur sur l'élément. Tout cela pour dire que le compte d'utilisateur de votre application java est vous connectant à ne pas "savoir" à propos de la procédure stockée.
- Avez-vous vérifié que l'utilisateur qui exécute le code ont l'autorisation d'exécuter la procédure? GRANT EXECUTE ON <procedure_name> <utilisateur>
Vous devez vous connecter pour publier un commentaire.
J'ai fait face à un même problème et a trouvé la solution.
En fait, Quand j'ai cherché la réponse, d'autres post mentionné que "il pourrait y avoir de problème d'autorisation'. Qui est quitté le cas ici. Comme une solution de contournement ou de la solution nécessaire pour effectuer les opérations suivantes:
-Déposez vous SP.
-Recréer SP avec le Paramètre (c'est à dire votre dernier SP)
Vous pourriez avoir créé SP d'abord et plus tard a fait quelques changements dans le Paramètre de la section.
Voir si cela aide. Cependant, il l'a fait dans mon cas.
PLS-00201: identificateur 'PROC_NAME" doit être déclarée
ORA-06550: ligne 1, colonne 7:
J'ai été en mesure de résoudre le problème en créant synonyme de la procédure.