Динамический SQL в PostgreSQL

Я получаю "синтаксическая ошибка в или около" И "". Не могли бы вы мне помочь. Если значение не указано /NULL, PostgreSQL не проверяет его как правильное утверждение. Я уверен, что нет синтаксической ошибки. Если я добавляю как quote_nullable(column3), то это работает. Но если я передам это столбцу NUMBER, он будет работать по-другому.

 DECLARE
  v_sql   VARCHAR2(4000);
  column1 VARCHAR2(100) :=NULL;
  column2 VARCHAR2(200) :=NULL;
  column3 NUMBER;
  column4 VARCHAR2(100):=NULL;
  column5 VARCHAR2(100):=NULL;
BEGIN
  v_sql := 'INSERT INTO STORE (SHOPID, STOREGROUP, CD1, CD2)'||CHR(10)|| 'SELECT ST.SHOPID,C_ID||'':''||SHOPTYPE||'''||column1||''',P.PSETID,P.NDID'||CHR(10)|| 'FROM STORES K, SLIST T, PSTORES P '||CHR(10)|| 'WHERE P.NID = '||column3||CHR(10)|| 'AND P.NID = '||column4||CHR(10)|| 'AND P.ND = '||column5||CHR(10)||;
  EXECUTE IMMEDIATE v_sql;
  raise notice '%',v_sql;
END;

0 ответов

Другие вопросы по тегам