我需要通过过程插入批量数据,但表和列将是动态的。 假设一个帐户有一个表,并且它们具有已配置的列,类似地,可以有1000个这样的帐户,因此将有1000个数字表及其列。
我们如何在一个程序中实现这一目标?
答案 0 :(得分:0)
一个非常原始的例子,让你感受到:
CREATE OR REPLACE PROCEDURE yourProcedure (tableName VARCHAR2,
colName1 VARCHAR2, colName2 VARCHAR2, colName3 VARCHAR2) IS
v_column VARCHAR2(30);
sql_stmt VARCHAR2(200);
BEGIN
sql_stmt := 'SELECT ' || colName1 || ', ' || colName2 || ', ' colName3 || ' FROM ' || tableName
EXECUTE IMMEDIATE sql_stmt;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('Node Data Found');
END yourProcedure;
如果您事先不知道您需要选择的列,则可以传递一列而不是三列。 您还可以将变量绑定到添加“USING”子句的select语句。请参阅文档示例:http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/dynamic.htm#CHDGJEGD