0
Наша база данных - PostgreSQL 9.3.5. Нам нужно выполнить динамическую вставку. Для этого мы написали код так: выходКак выполнить динамическую вставку оператора
v_seq bigint;
v_levelname varchar(100);
v_cols text;
v_cols variable having concatenated data of all column names of particular a table(ex. L150).
L150 table columns details
----------------------------
id bigint;
levelname varchar(100);
healthcareno bigint;
businessno bigint;
bankingno bigint;
v_insertstmt:='insert into L'||levelid||'---tablename(receiving tablename dynamically)
values('||v_seq||','''||v_levelname||''','||v_cols||')';
raise notice '%',v_insertstmt;
данных:
insert into L105
values(1053911,''ProductPlanning'','||healthcareno||','||businessno||','||bankingno||')
но healthcareno, businessno, bankingno это столбец columns.Each имеет значения, нам нужно вставить эти значения в таблицу.
v_str:=''''||v_insertstmt||'''';--we added quotes
повысить уведомление «%», v_str;
Вывод данных:
'insert into L105
values(1053911,''ProductPlanning'','||healthcareno||','||businessno||','||bankingno||')'
execute v_str;
Но мы получали ошибку синтаксиса.
я соблазн игнорировать plpgsql вопросы с фрагментами кода, где только полная функция, включая заголовок будет обеспечить необходимый контекст. И всегда предоставляйте дословное сообщение об ошибке. –