У меня есть процедура, которая принимает имя таблицы и 3 поля, которые необходимо заполнить. Это должно вызываться из другой процедуры, которая перебирает другую таблицу, решая, в какую подстатью помещать материал. Важным битом является простой оператор вставки, например,
insert into table1 values
('blah','String','50');
, чтобы в него входили 4 параметра (таблица 1 и 3 значения). Как бы я сделал это, используя котировки доллара? Очевидно, что это не работает, но дает вам представление о том, что я пытаюсь выполнить sh:
create or replace procedure
insert_dc_table(p_tblname varchar,
p_name varchar,
p_datatype varchar,
p_datalen varchar)
as $$
begin
execute
'insert into '||p_tblname||'(name,datatype,datalen) values '
||'('
||p_name||', '
||p_datatype||', '
||p_datalen
||')';
end;
$$ language plpgsql;
Мне понадобится двойной доллар вокруг некоторых, но я не уверен точно, где $$ и цитаты go во всем этом! * & #! Я мог бы объявить переменную для хранения оператора execute и сделать:
declare a _output varchar(200);
a_output := $$ insert into $$||p_tblname||$$(name,datatype,datalen) values ( '$$||p_name||$$',
хорошо, я заблудился там! Заранее спасибо за помощь!