我搜索过很多Q-A,但我找不到我想要的东西。我正在寻找创建一个以动态方式为两个不同的查找表生成传输脚本(但不执行它)的过程。
我已经能够使用:
创建sql select语句DECLARE
testertable VARCHAR2(320) := 'LOOKUP_TABLE';
testerid VARCHAR2(320) := '999';
testerfield VARCHAR2(320) := 'id_no';
type nameArray IS TABLE OF VARCHAR2(60);
type typeArray IS TABLE OF VARCHAR2(60);
data_nameA nameArray := nameArray();
data_typeA typeArray := typeArray();
i NUMBER;
CURSOR c_curse IS SELECT column_name, data_type
FROM user_tab_columns
WHERE table_name = testertable;
i := 0;
FOR n IN c_curse LOOP
i := i + 1;
data_nameA.EXTEND(1);
data_typeA.EXTEND(1);
data_nameA(i) := n.column_name;
data_typeA(i) := n.data_type;
END LOOP;
从那里,我可以创建select语句。然后我想使用该语句打开一个查询,并填充insert语句,使用data_typeA(i)作为参考,以确保根据需要输入引号。
这是我不允许修改的更大传输功能的一部分,我的任务是扩展它以包括这两个查找表,每个传输系统可能存在也可能不存在。
希望输出将是CLOB或其他文本字段:
-- transport for lookup 'LOOKUP_TABLE'
Insert into LOOKUP_TABLE VALUES (value1, 'value2', value3), (value4, 'value5', value6), (value7, 'value8', value9);
谢谢。