pas en mesure d'appeler une procédure dans la procédure dans HANA Studio
Je suis en train d'appeler une procédure que j'ai faite plus tôt dans la nouvelle procédure. Je suis d'erreur dans la même ligne, peu importe ce que j'essaie.
Ma ligne d'origine était :
CALL "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetail"(:EmpID)
sur ce je suis d'erreur "invalid nom de la fonction ou de la procédure: ABS_GETEMPLOYEEHISTORYDETAILS: "
ensuite, j'ai essayé
APPEL "PAYROLLDBTEST/ABS_GetEmployeeHistoryDetail"(EmpID)
sur ce je suis d'erreur "erreur de syntaxe sql: syntaxe incorrecte près de "(":"
De sorte s'il vous plaît laissez-moi savoir quel est mauvais.
EDIT:
Heres l'ensemble de la procédure :
CREATE PROCEDURE "PAYROLLDBTEST".GetEmploymentHistoryFunction
(IN EmpID integer, IN StartDate timestamp, IN EndDate timestamp,OUT RETURNVALUE NVARCHAR)
LANGUAGE SQLSCRIPT
AS
BEGIN
SELECT *, DAYS_BETWEEN("FromDate", "ToDate") + 1 AS "DaysCount"
FROM (SELECT "Code", "Name", "U_LineID", "U_empID", "U_Status",
CASE
WHEN ("ToDate" < :StartDate) THEN NULL
WHEN ("FromDate" > :EndDate) THEN NULL
WHEN ("FromDate" < :StartDate AND ("ToDate" BETWEEN :StartDate AND :EndDate)) THEN :StartDate
WHEN ("FromDate" < :StartDate AND "ToDate" > :EndDate) THEN :StartDate
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND
("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "FromDate"
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND "ToDate" > :EndDate) THEN "FromDate"
WHEN ("ToDate" IS NULL AND "FromDate" < :StartDate) THEN :StartDate
WHEN ("ToDate" IS NULL AND ("FromDate" BETWEEN :StartDate AND :EndDate)) THEN "FromDate"
END AS "FromDate",
CASE
WHEN ("ToDate" < :StartDate) THEN NULL
WHEN ("FromDate" > :EndDate) THEN NULL
WHEN ("FromDate" < :StartDate AND ("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "ToDate"
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND
("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "ToDate"
WHEN ("FromDate" < :StartDate AND "ToDate" > :EndDate) THEN :EndDate
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND "ToDate" > :EndDate) THEN :EndDate
WHEN ("ToDate" IS NULL AND "FromDate" < :StartDate) THEN :EndDate
WHEN ("ToDate" IS NULL AND ("FromDate" BETWEEN :StartDate AND :EndDate)) THEN :EndDate
END AS "ToDate", "U_Position", "U_Project", "U_Sponsorship"
FROM (
--select * from ABS_GetEmployeeHistoryDetails WHERE ("EmpID" IN (:EmpID))
--select * from "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetails" WHERE ("EmpID" IN (:EmpID))
CALL "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetails"(:EmpID,:RETURNVALUE);
) InnerQuery
) OuterQuery
WHERE ("FromDate" between :StartDate and :EndDate OR "ToDate" between :StartDate and :EndDate);
END;
Grâce
Cette question est liée à SQL Server en aucune manière? Vous avez ajouté l'
Original procédure était en SQL donc c'est pourquoi marqués et aussi les syntaxes SQL sont utilisées
Si c'était en SQL, vous devriez probablement tag de la question avec
Désolé pour ce que je n'ai pas su , toutefois corrigé.
avez-vous ce travail? Je suis à la recherche de l'appel d'une procédure de manière dynamique. Sens que j'ai un nom de procédure dans une variable (Ex: dyn_sp := 'MY_STORED_PROC';) comment dois-je appeler cela de manière dynamique à partir d'une autre procédure (APPEL dyn_sp(:var1, :var2);
sql-server
tag, mais je ne vois pas le lien.Original procédure était en SQL donc c'est pourquoi marqués et aussi les syntaxes SQL sont utilisées
Si c'était en SQL, vous devriez probablement tag de la question avec
sql
à la place. SQL est un langage SQL Server est un produit qui arrive à utiliser (une variation de) cette langue. De nombreux autres produits, l'utilisation de SQL trop, de sorte que le marquage de vos questions liées spécifiquement à SQL Server semble porter à confusion.Désolé pour ce que je n'ai pas su , toutefois corrigé.
avez-vous ce travail? Je suis à la recherche de l'appel d'une procédure de manière dynamique. Sens que j'ai un nom de procédure dans une variable (Ex: dyn_sp := 'MY_STORED_PROC';) comment dois-je appeler cela de manière dynamique à partir d'une autre procédure (APPEL dyn_sp(:var1, :var2);
OriginalL'auteur mark | 2014-06-09
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, assurez-vous que votre procédure est vraiment situé dans le schéma de votre tentez d'appeler (dans votre cas PAYROLLDBTEST).
Vous pouvez le vérifier en un coup d'œil au Catalogue HANA Studio - ouvrir le Catalogue, puis votre schéma PAYROLLDBTEST et puis le dossier Procédures. Votre procédure doit être situé dans ce dossier. Si pas, essayez d'actualiser ce dossier. Si la procédure est toujours pas là, c'est certainement stocké dans un autre schéma.
Deuxième, être sûr que vous appelez la procédure avec la bonne quantité de paramètres.
Votre procédure mentionnée semble avoir qu'un seul paramètre, EmpID, ce qui semble être un paramètre d'entrée. Le nom de votre procédure est GetEmployeeHistoryDetail donc je suppose que vous avez au moins un paramètre de sortie en tant que second paramètre (pour obtenir les détails de l'historique de l'employé à l'arrière). Si c'est le cas, vous devez appeler la fonction comme ceci (en supposant que vous êtes à l'intérieur d'une autre procédure et que vous voulez utiliser la sortie de l'intérieur de la procédure dans un scalaire ou un tableau de variable):
Ou dans le cas où votre paramètre est une variable de table. someTableVariable pourrait également être un paramètre de sortie de l'extérieur de procédure:
OriginalL'auteur hoffman
Procédures devraient être appelée à partir de la _SYS_BIC schéma, s'il vous plaît essayer à l'appel suivant:
OriginalL'auteur Kirill K.
Vous ne pouvez pas faire un
CALL
à l'intérieur de laFROM
partie d'unSELECT
déclaration.Votre procédure doit fonctionner comme ceci:
Vous pouvez utiliser
EXEC
pour exécuter une commande SQL dans un varchar. Mais si vous voulez avoir de la suite des valeurs de retour de l'appel de la procédure stockée, ce n'est probablement pas aller travailler.J'ai besoin des valeurs de retour. Est-il possible? Vraiment reconnaissant de votre aide!
OriginalL'auteur daniel kullmann