Ich habe eine einfache gespeicherte Prozedur für Testzwecke in Netezza erstellt, die eine Zeichenfolge zurückgibt. Wenn ich es von einer Select-Anweisung aus aufrufen, funktioniert es einwandfrei, es sei denn, ich nenne es mehrmals in mehreren Spalten. Ich erhalte den Fehler:Können Sie eine gespeicherte Netezza-Prozedur mehr als einmal in Select aufrufen?
ERROR [HY000] ERROR: Can't use a stored procedure in this context.
Ist das nicht erlaubt?
Stored Procedure:
CREATE OR REPLACE PROCEDURE SP_TEST_PROC(VARCHAR(ANY))
RETURNS VARCHAR(32)
EXECUTE AS OWNER
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
TEST_PAR ALIAS FOR $1;
BEGIN
RETURN 'A' || TEST_PAR;
END;
END_PROC;
Wie ich es nennen:
SELECT SP_TEST_PROC('abc') as test1, sp_test_proc('def') as test2
"SELECT SP_TEST_PROC ('abc') als test1" funktioniert, ich denke, es wandelt nur in eine EXECUTE-Anweisung – Kelly