我一直在嘗試創建一個過程以便「EXECUTE
INSERT INTO
」表格。我放棄了這一點,並繼續嘗試動態生成所需的代碼插入。無法在pl/pgsql中創建過程,但代碼在沒有創建過程的情況下工作
我已經通過不創建程序並簡單地從「DECLARE
」位開始解決了我的問題;但仍然沒有設法使pl/pgsql過程正常工作。
以下過程不工作:
CREATE PROCEDURE populate_xcc_allocatable() AS
$body$
DECLARE
TYPE tablearray IS VARRAY(17) OF VARCHAR2(30);
xa_tables tablearray := tablearray('allocation', 'container', 'location', 'sap_posting', 'status');
total integer;
BEGIN
total := xa_tables.count;
FOR i IN 1..total
LOOP
dbms_output.put_line('INSERT INTO allocatable VALUES (nextval(''allocatable_id_seq''), ''' || xa_tables(i) || ''');');
END LOOP;
END;
$body$
LANGUAGE plpgsql;
LINE 4: TYPE tablearray IS VARRAY(17) OF VARCHAR2(30);
CONTEXT: invalid type name "tablearray IS VARRAY(17) OF VARCHAR2(30)"
但是,這是工作的罰款:
DECLARE
TYPE tablearray IS VARRAY(17) OF VARCHAR2(30);
xa_tables tablearray := tablearray('allocation', 'container', 'location', 'spirit_portion', 'activity', 'asset_ownership', 'container_location', 'sap_posting', 'status');
total integer;
BEGIN
total := xa_tables.count;
FOR i IN 1..total
LOOP
dbms_output.put_line('INSERT INTO xcc_allocatable VALUES (nextval(''xcc_allocatable_id_seq''), ''' || xa_tables(i) || ''');');
END LOOP;
END;