Объединить два входных параметра, переданных в хранимой процедуре, как одну переменную - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь создать хранимую процедуру, которая принимает два параметра, имя таблицы и имя столбца в качестве входных данных, а затем выполняет запрос соответственно. Я выполняю это в 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.

...