Я пытаюсь создать хранимую процедуру, которая принимает два параметра, имя таблицы и имя столбца в качестве входных данных, а затем выполняет запрос соответственно. Я выполняю это в Netezza Aginity.
Сейчас я использую ||(конвейер) для объединения параметров, но они не разрешаются до своих переданных значений.
CREATE OR REPLACE PROCEDURE INSERT_DETAILS(CHARACTER VARYING(200),CHARACTER VARYING(200))
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
v_tablename ALIAS FOR $1;
v_colname ALIAS FOR $2;
BEGIN
INSERT INTO DB1..TABLE1
SELECT v_tablename, 'DB2..'||v_tablename||'.'||v_colname
FROM 'DB2..'||v_tablename;
END;
END_PROC;
Затем выполните:
exec INSERT_DETAILS('TABLE2','COLUMN1')
Я также попытался установить переменную, как показано ниже, и использовать ее вместо этого.
v_tablecol := 'DB2..'||v_tablename||'.'||v_colname;
Мой код выдает следующую ошибку:
error ^ found "||" (at char 145) expecting an identifier found a keyword
В идеале он должен разрешаться в DB2..TABLE2.COLUMN1.